New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 14219 for NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/TRA/trabbl.F90 – NEMO

Ignore:
Timestamp:
2020-12-18T18:52:57+01:00 (4 years ago)
Author:
mcastril
Message:

Add Mixed Precision support by Oriol Tintó

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/TRA/trabbl.F90

    r14200 r14219  
    6969#  include "do_loop_substitute.h90" 
    7070#  include "domzgr_substitute.h90" 
     71#  include "single_precision_substitute.h90" 
    7172   !!---------------------------------------------------------------------- 
    7273   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    104105      INTEGER,                                   INTENT(in   ) :: kt              ! ocean time-step 
    105106      INTEGER,                                   INTENT(in   ) :: Kbb, Kmm, Krhs  ! time level indices 
    106       REAL(wp), DIMENSION(jpi,jpj,jpk,jpts,jpt), INTENT(inout) :: pts             ! active tracers and RHS of tracer equation 
     107      REAL(dp), DIMENSION(jpi,jpj,jpk,jpts,jpt), INTENT(inout) :: pts             ! active tracers and RHS of tracer equation 
    107108      ! 
    108109      INTEGER  ::   ji, jj, jk   ! Dummy loop indices 
     
    122123      IF( nn_bbl_ldf == 1 ) THEN                    !* Diffusive bbl 
    123124         ! 
    124          CALL tra_bbl_dif( pts(:,:,:,:,Kbb), pts(:,:,:,:,Krhs), jpts, Kmm ) 
     125         CALL tra_bbl_dif( CASTWP(pts(:,:,:,:,Kbb)), pts(:,:,:,:,Krhs), jpts, Kmm ) 
    125126         IF( sn_cfctl%l_prtctl )  & 
    126          CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' bbl_ldf  - Ta: ', mask1=tmask, & 
    127             &          tab3d_2=pts(:,:,:,jp_sal,Krhs), clinfo2=           ' Sa: ', mask2=tmask, clinfo3='tra' ) 
     127         CALL prt_ctl( tab3d_1=CASTWP(pts(:,:,:,jp_tem,Krhs)), clinfo1=' bbl_ldf  - Ta: ', mask1=tmask, & 
     128            &          tab3d_2=CASTWP(pts(:,:,:,jp_sal,Krhs)), clinfo2=           ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    128129         IF( ntile == 0 .OR. ntile == nijtile ) THEN                       ! Do only on the last tile 
    129130            CALL iom_put( "ahu_bbl", ahu_bbl )   ! bbl diffusive flux i-coef 
     
    135136      IF( nn_bbl_adv /= 0 ) THEN                    !* Advective bbl 
    136137         ! 
    137          CALL tra_bbl_adv( pts(:,:,:,:,Kbb), pts(:,:,:,:,Krhs), jpts, Kmm ) 
     138CALL tra_bbl_adv( CASTWP(pts(:,:,:,:,Kbb)), pts(:,:,:,:,Krhs), jpts, Kmm ) 
    138139         IF(sn_cfctl%l_prtctl)   & 
    139          CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' bbl_adv  - Ta: ', mask1=tmask, & 
    140             &          tab3d_2=pts(:,:,:,jp_sal,Krhs), clinfo2=           ' Sa: ', mask2=tmask, clinfo3='tra' ) 
     140         CALL prt_ctl( tab3d_1=CASTWP(pts(:,:,:,jp_tem,Krhs)), clinfo1=' bbl_adv  - Ta: ', mask1=tmask, & 
     141            &          tab3d_2=CASTWP(pts(:,:,:,jp_sal,Krhs)), clinfo2=           ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    141142         IF( ntile == 0 .OR. ntile == nijtile ) THEN                       ! Do only on the last tile 
    142143            ! lateral boundary conditions ; just need for outputs 
     
    184185      INTEGER                              , INTENT(in   ) ::   kjpt   ! number of tracers 
    185186      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in   ) ::   pt     ! before and now tracer fields 
    186       REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) ::   pt_rhs ! tracer trend 
     187      REAL(dp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) ::   pt_rhs ! tracer trend 
    187188      INTEGER                              , INTENT(in   ) ::   Kmm    ! time level indices 
    188189      ! 
     
    232233      INTEGER                              , INTENT(in   ) ::   kjpt   ! number of tracers 
    233234      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in   ) ::   pt     ! before and now tracer fields 
    234       REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) ::   pt_rhs ! tracer trend 
     235      REAL(dp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) ::   pt_rhs ! tracer trend 
    235236      INTEGER                              , INTENT(in   ) ::   Kmm    ! time level indices 
    236237      ! 
     
    551552   !!====================================================================== 
    552553END MODULE trabbl 
     554 
Note: See TracChangeset for help on using the changeset viewer.