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/TOP/TRP – NEMO

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

Add Mixed Precision support by Oriol Tintó

Location:
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/TOP/TRP
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/TOP/TRP/trcadv.F90

    r14086 r14219  
    6363    
    6464#  include "domzgr_substitute.h90" 
     65#  include "single_precision_substitute.h90" 
    6566   !!---------------------------------------------------------------------- 
    6667   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    8081      INTEGER                                   , INTENT(in)    :: kt   ! ocean time-step index 
    8182      INTEGER                                   , INTENT(in)    :: Kbb, Kmm, Krhs ! time level indices 
    82       REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr            ! passive tracers and RHS of tracer equation 
     83      REAL(dp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr            ! passive tracers and RHS of tracer equation 
    8384      ! 
    8485      INTEGER ::   jk   ! dummy loop index 
     
    127128      ! 
    128129      CASE ( np_CEN )                                 ! Centered : 2nd / 4th order 
    129          IF (nn_hls.EQ.2) CALL lbc_lnk( 'trcadv', ptr(:,:,:,:,Kmm), 'T', 1.) 
     130         IF (nn_hls.EQ.2) CALL lbc_lnk( 'trcadv', ptr(:,:,:,:,Kmm), 'T', 1._wp) 
    130131         CALL tra_adv_cen( kt, nittrc000,'TRC',          zuu, zvv, zww,      Kmm, ptr, jptra, Krhs, nn_cen_h, nn_cen_v ) 
    131132      CASE ( np_FCT )                                 ! FCT      : 2nd / 4th order 
    132133         IF (nn_hls.EQ.2) THEN 
    133             CALL lbc_lnk_multi( 'trcadv', ptr(:,:,:,:,Kbb), 'T', 1., ptr(:,:,:,:,Kmm), 'T', 1.) 
    134             CALL lbc_lnk_multi( 'traadv', zuu(:,:,:), 'U', -1., zvv(:,:,:), 'V', -1., zww(:,:,:), 'W', 1.) 
     134            CALL lbc_lnk_multi( 'trcadv', ptr(:,:,:,:,Kbb), 'T', 1._wp, ptr(:,:,:,:,Kmm), 'T', 1._wp) 
     135            CALL lbc_lnk_multi( 'traadv', zuu(:,:,:), 'U', -1._wp, zvv(:,:,:), 'V', -1._wp, zww(:,:,:), 'W', 1._wp) 
    135136#if defined key_loop_fusion 
    136137            CALL tra_adv_fct_lf( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, nn_fct_h, nn_fct_v ) 
     
    143144      CASE ( np_MUS )                                 ! MUSCL 
    144145         IF (nn_hls.EQ.2) THEN 
    145             IF (nn_hls.EQ.2) CALL lbc_lnk( 'trcadv', ptr(:,:,:,:,Kbb), 'T', 1.) 
     146            IF (nn_hls.EQ.2) CALL lbc_lnk( 'trcadv', ptr(:,:,:,:,Kbb), 'T', 1._wp) 
    146147#if defined key_loop_fusion 
    147148            CALL tra_adv_mus_lf( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, ln_mus_ups )  
     
    153154         END IF 
    154155      CASE ( np_UBS )                                 ! UBS 
    155          IF (nn_hls.EQ.2) CALL lbc_lnk( 'trcadv', ptr(:,:,:,:,Kbb), 'T', 1.) 
     156         IF (nn_hls.EQ.2) CALL lbc_lnk( 'trcadv', ptr(:,:,:,:,Kbb), 'T', 1._wp) 
    156157         CALL tra_adv_ubs( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, nn_ubs_v           ) 
    157158      CASE ( np_QCK )                                 ! QUICKEST 
    158159         IF (nn_hls.EQ.2) THEN 
    159             CALL lbc_lnk_multi( 'trcadv', zuu(:,:,:), 'U', -1., zvv(:,:,:), 'V', -1.) 
    160             CALL lbc_lnk( 'traadv', ptr(:,:,:,:,Kbb), 'T', 1.) 
     160            CALL lbc_lnk_multi( 'trcadv', zuu(:,:,:), 'U', -1._wp, zvv(:,:,:), 'V', -1._wp) 
     161            CALL lbc_lnk( 'traadv', ptr(:,:,:,:,Kbb), 'T', 1._wp) 
    161162         END IF 
    162163         CALL tra_adv_qck( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs                     ) 
     
    167168         WRITE(charout, FMT="('adv ')") 
    168169         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
    169          CALL prt_ctl( tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 
     170         CALL prt_ctl( tab4d_1=CASTWP(tr(:,:,:,:,Krhs)), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 
    170171      END IF 
    171172      ! 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/TOP/TRP/trcatf.F90

    r14200 r14219  
    5656#  include "do_loop_substitute.h90" 
    5757#  include "domzgr_substitute.h90" 
     58#  include "single_precision_substitute.h90" 
    5859   !!---------------------------------------------------------------------- 
    5960   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    8485      INTEGER                                   , INTENT( in )  :: kt             ! ocean time-step index 
    8586      INTEGER                                   , INTENT( in )  :: Kbb, Kmm, Kaa ! time level indices 
    86       REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr            ! passive tracers 
     87      REAL(dp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr            ! passive tracers 
    8788      ! 
    8889      INTEGER  ::   jk, jn   ! dummy loop indices 
     
    162163# else 
    163164            IF( ln_linssh ) THEN   ;   CALL tra_atf_fix( kt, Kbb, Kmm, Kaa, nittrc000,         'TRC', ptr, jptra )                       !     linear ssh 
    164             ELSE                   ;   CALL tra_atf_vvl( kt, Kbb, Kmm, Kaa, nittrc000, rn_Dt, 'TRC', ptr, sbc_trc, sbc_trc_b, jptra )    ! non-linear ssh 
     165            ELSE                   ;   CALL tra_atf_vvl( kt, Kbb, Kmm, Kaa, nittrc000, CASTWP(rn_Dt), 'TRC', ptr, sbc_trc, sbc_trc_b, jptra )    ! non-linear ssh 
    165166# endif 
    166167            ENDIF 
     
    186187         WRITE(charout, FMT="('nxt')") 
    187188         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
    188          CALL prt_ctl(tab4d_1=ptr(:,:,:,:,Kmm), mask1=tmask, clinfo=ctrcnm) 
     189         CALL prt_ctl(tab4d_1=CASTWP(ptr(:,:,:,:,Kmm)), mask1=tmask, clinfo=ctrcnm) 
    189190      ENDIF 
    190191      ! 
     
    221222      INTEGER                                   , INTENT(in   ) ::  kt            ! ocean time-step index 
    222223      INTEGER                                   , INTENT(in   ) ::  Kbb, Kmm, Kaa ! time level indices 
    223       REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) ::  ptr           ! passive tracers 
     224      REAL(dp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) ::  ptr           ! passive tracers 
    224225      !!      
    225226      INTEGER  ::   ji, jj, jk, jn              ! dummy loop indices 
     
    294295      INTEGER                                   , INTENT(in   ) ::  kt            ! ocean time-step index 
    295296      INTEGER                                   , INTENT(in   ) ::  Kbb, Kmm, Kaa ! time level indices 
    296       REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) ::  ptr           ! passive tracers 
     297      REAL(dp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) ::  ptr           ! passive tracers 
    297298      !!      
    298299      INTEGER  ::   ji, jj, jk, jn              ! dummy loop indices 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/TOP/TRP/trcbbl.F90

    r14086 r14219  
    3030   PUBLIC   trc_bbl   !  routine called by trctrp.F90 
    3131 
     32#  include "single_precision_substitute.h90" 
    3233   !!---------------------------------------------------------------------- 
    3334   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    4849      INTEGER,                                    INTENT( in  ) :: kt              ! ocean time-step  
    4950      INTEGER,                                    INTENT( in  ) :: Kbb, Kmm, Krhs  ! time level indices 
    50       REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr             ! passive tracers and RHS of tracer equation 
     51      REAL(dp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr             ! passive tracers and RHS of tracer equation 
    5152      INTEGER :: jn                   ! loop index 
    5253      CHARACTER (len=22) :: charout 
     
    6970      IF( nn_bbl_ldf == 1 ) THEN 
    7071         ! 
    71          CALL tra_bbl_dif( ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Krhs), jptra, Kmm )   
     72         CALL tra_bbl_dif( CASTWP(ptr(:,:,:,:,Kbb)), ptr(:,:,:,:,Krhs), jptra, Kmm )   
    7273         IF( sn_cfctl%l_prttrc )   THEN 
    7374            WRITE(charout, FMT="(' bbl_dif')")  ;  CALL prt_ctl_info( charout, cdcomp = 'top' ) 
    74             CALL prt_ctl( tab4d_1=ptr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 
     75            CALL prt_ctl( tab4d_1=CASTWP(ptr(:,:,:,:,Krhs)), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 
    7576         ENDIF 
    7677         ! 
     
    8081      IF( nn_bbl_adv /= 0 ) THEN 
    8182         ! 
    82          CALL tra_bbl_adv( ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Krhs), jptra, Kmm )   
     83         CALL tra_bbl_adv( CASTWP(ptr(:,:,:,:,Kbb)), ptr(:,:,:,:,Krhs), jptra, Kmm )   
    8384         IF( sn_cfctl%l_prttrc )   THEN 
    8485            WRITE(charout, FMT="(' bbl_adv')")  ;  CALL prt_ctl_info( charout, cdcomp = 'top' ) 
    85             CALL prt_ctl( tab4d_1=ptr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 
     86            CALL prt_ctl( tab4d_1=CASTWP(ptr(:,:,:,:,Krhs)), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 
    8687         ENDIF 
    8788         ! 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/TOP/TRP/trcdmp.F90

    r14086 r14219  
    4747#  include "do_loop_substitute.h90" 
    4848#  include "domzgr_substitute.h90" 
     49#  include "single_precision_substitute.h90" 
    4950   !!---------------------------------------------------------------------- 
    5051   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    8687      INTEGER,                                    INTENT(in   ) :: kt              ! ocean time-step index 
    8788      INTEGER,                                    INTENT(in   ) :: Kbb, Kmm, Krhs  ! time level indices 
    88       REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr             ! passive tracers and RHS of tracer equation 
     89      REAL(dp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr             ! passive tracers and RHS of tracer equation 
    8990      ! 
    9091      INTEGER ::   ji, jj, jk, jn, jl   ! dummy loop indices 
    9192      CHARACTER (len=22) ::   charout 
    9293      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   ztrtrd 
    93       REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   ztrcdta   ! 3D  workspace 
     94      REAL(dp), ALLOCATABLE, DIMENSION(:,:,:) ::   ztrcdta   ! 3D  workspace 
    9495      !!---------------------------------------------------------------------- 
    9596      ! 
     
    151152         WRITE(charout, FMT="('dmp ')") 
    152153         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
    153          CALL prt_ctl( tab4d_1=ptr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 
     154         CALL prt_ctl( tab4d_1=CASTWP(ptr(:,:,:,:,Krhs)), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 
    154155      ENDIF 
    155156      ! 
     
    231232      INTEGER :: ji , jj, jk, jn, jl, jc                    ! dummy loop indicesa 
    232233      INTEGER :: isrow                                      ! local index 
    233       REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrcdta       ! 3D  workspace 
     234      REAL(dp), POINTER, DIMENSION(:,:,:) ::  ztrcdta       ! 3D  workspace 
    234235      !!---------------------------------------------------------------------- 
    235236 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/TOP/TRP/trcldf.F90

    r14086 r14219  
    4646#  include "do_loop_substitute.h90" 
    4747#  include "domzgr_substitute.h90" 
     48#  include "single_precision_substitute.h90" 
    4849   !!---------------------------------------------------------------------- 
    4950   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    6263      INTEGER,                                    INTENT(in   ) :: kt              ! ocean time-step index 
    6364      INTEGER,                                    INTENT(in   ) :: Kbb, Kmm, Krhs  ! ocean time-level index 
    64       REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr             ! passive tracers and RHS of tracer equation 
     65      REAL(dp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr             ! passive tracers and RHS of tracer equation 
    6566      ! 
    6667      INTEGER            :: ji, jj, jk, jn 
     
    9495      CASE ( np_lap   )                                                                                    ! iso-level laplacian 
    9596         CALL tra_ldf_lap  ( kt, Kmm, nittrc000,'TRC', zahu, zahv, gtru, gtrv, gtrui, gtrvi,            & 
    96            &                     ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Krhs),                   jptra, 1 ) 
     97           &                     CASTWP(ptr(:,:,:,:,Kbb)), ptr(:,:,:,:,Krhs),                   jptra, 1 ) 
    9798      CASE ( np_lap_i )                                                                                    ! laplacian : standard iso-neutral operator (Madec) 
    9899         CALL tra_ldf_iso  ( kt, Kmm, nittrc000,'TRC', zahu, zahv, gtru, gtrv, gtrui, gtrvi,            & 
    99            &                     ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Krhs), jptra, 1 ) 
     100           &                     CASTWP(ptr(:,:,:,:,Kbb)), CASTWP(ptr(:,:,:,:,Kbb)), ptr(:,:,:,:,Krhs), jptra, 1 ) 
    100101      CASE ( np_lap_it )                                                                                   ! laplacian : triad iso-neutral operator (griffies) 
    101102         CALL tra_ldf_triad( kt, Kmm, nittrc000,'TRC', zahu, zahv, gtru, gtrv, gtrui, gtrvi,            & 
    102            &                     ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Krhs), jptra, 1 ) 
     103           &                     CASTWP(ptr(:,:,:,:,Kbb)), CASTWP(ptr(:,:,:,:,Kbb)), ptr(:,:,:,:,Krhs), jptra, 1 ) 
    103104      CASE ( np_blp , np_blp_i , np_blp_it )                                                               ! bilaplacian: all operator (iso-level, -neutral) 
    104          IF(nn_hls.EQ.2) CALL lbc_lnk( 'trc_ldf', ptr(:,:,:,:,Kbb), 'T',1.) 
     105         IF(nn_hls.EQ.2) CALL lbc_lnk( 'trc_ldf', ptr(:,:,:,:,Kbb), 'T',1._wp) 
    105106         CALL tra_ldf_blp  ( kt, Kmm, nittrc000,'TRC', zahu, zahv, gtru, gtrv, gtrui, gtrvi,            & 
    106            &                     ptr(:,:,:,:,Kbb) , ptr(:,:,:,:,Krhs),                 jptra, nldf_trc ) 
     107           &                     CASTWP(ptr(:,:,:,:,Kbb)) , ptr(:,:,:,:,Krhs),                 jptra, nldf_trc ) 
    107108      END SELECT 
    108109      ! 
     
    118119         WRITE(charout, FMT="('ldf ')") 
    119120         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
    120          CALL prt_ctl( tab4d_1=ptr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 
     121         CALL prt_ctl( tab4d_1=CASTWP(ptr(:,:,:,:,Krhs)), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 
    121122      ENDIF 
    122123      ! 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/TOP/TRP/trcrad.F90

    r13324 r14219  
    3333   !! * Substitutions 
    3434#  include "do_loop_substitute.h90" 
     35#  include "single_precision_substitute.h90" 
    3536   !!---------------------------------------------------------------------- 
    3637   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    5758      INTEGER,                                    INTENT(in   ) :: kt         ! ocean time-step index 
    5859      INTEGER,                                    INTENT(in   ) :: Kbb, Kmm   ! time level indices 
    59       REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr        ! passive tracers and RHS of tracer equation 
     60      REAL(dp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr        ! passive tracers and RHS of tracer equation 
    6061      ! 
    6162      CHARACTER (len=22) :: charout 
     
    7374         WRITE(charout, FMT="('rad')") 
    7475         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
    75          CALL prt_ctl( tab4d_1=ptr(:,:,:,:,Kbb), mask1=tmask, clinfo=ctrcnm ) 
     76         CALL prt_ctl( tab4d_1=CASTWP(ptr(:,:,:,:,Kbb)), mask1=tmask, clinfo=ctrcnm ) 
    7677      ENDIF 
    7778      ! 
     
    135136     INTEGER                                    , INTENT(in   ) ::   Kbb, Kmm           ! time level indices 
    136137     INTEGER                                    , INTENT(in   ) ::   jp_sms0, jp_sms1   ! First & last index of the passive tracer model 
    137      REAL(wp), DIMENSION (jpi,jpj,jpk,jptra,jpt), INTENT(inout) ::   ptr                ! before and now traceur concentration 
     138     REAL(dp), DIMENSION (jpi,jpj,jpk,jptra,jpt), INTENT(inout) ::   ptr                ! before and now traceur concentration 
    138139     CHARACTER( len = 1), OPTIONAL              , INTENT(in   ) ::   cpreserv           ! flag to preserve content or not 
    139140     ! 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/TOP/TRP/trcsbc.F90

    r14086 r14219  
    3232#  include "do_loop_substitute.h90" 
    3333#  include "domzgr_substitute.h90" 
     34#  include "single_precision_substitute.h90" 
    3435   !!---------------------------------------------------------------------- 
    3536   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    6263      INTEGER,                                    INTENT(in   ) :: kt        ! ocean time-step index 
    6364      INTEGER,                                    INTENT(in   ) :: Kmm, Krhs ! time level indices 
    64       REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr       ! passive tracers and RHS of tracer equation 
     65      REAL(dp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr       ! passive tracers and RHS of tracer equation 
    6566      ! 
    6667      INTEGER  ::   ji, jj, jn                      ! dummy loop indices 
     
    189190      IF( sn_cfctl%l_prttrc )   THEN 
    190191         WRITE(charout, FMT="('sbc ')") ;  CALL prt_ctl_info( charout, cdcomp = 'top' ) 
    191                                            CALL prt_ctl( tab4d_1=ptr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 
     192                                           CALL prt_ctl( tab4d_1=CASTWP(ptr(:,:,:,:,Krhs)), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 
    192193      ENDIF 
    193194      IF( l_trdtrc )  DEALLOCATE( ztrtrd ) 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/TOP/TRP/trctrp.F90

    r14086 r14219  
    4040   PUBLIC   trc_trp    ! called by trc_stp 
    4141 
     42#  include "single_precision_substitute.h90" 
    4243   !!---------------------------------------------------------------------- 
    4344   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/TOP/TRP/trczdf.F90

    r14086 r14219  
    2727   PUBLIC   trc_zdf         ! called by step.F90  
    2828    
     29#  include "single_precision_substitute.h90" 
    2930   !!---------------------------------------------------------------------- 
    3031   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    4344      INTEGER                                   , INTENT(in   ) ::   kt                   ! ocean time-step index 
    4445      INTEGER                                   , INTENT(in   ) ::   Kbb, Kmm, Krhs, Kaa  ! ocean time level indices 
    45       REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) ::   ptr                  ! passive tracers and RHS of tracer equation 
     46      REAL(dp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) ::   ptr                  ! passive tracers and RHS of tracer equation 
    4647      ! 
    4748      INTEGER               ::  jk, jn 
     
    6869         WRITE(charout, FMT="('zdf ')") 
    6970         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
    70          CALL prt_ctl( tab4d_1=tr(:,:,:,:,Kaa), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 
     71         CALL prt_ctl( tab4d_1=CASTWP(tr(:,:,:,:,Kaa)), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 
    7172      END IF 
    7273      ! 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/TOP/TRP/trdmxl_trc.F90

    r13497 r14219  
    419419         !-- Lateral boundary conditions 
    420420               IF ( cn_cfg .NE. 'gyre' ) THEN 
    421                   CALL lbc_lnk_multi( 'trdmxl_trc', ztmltot(:,:,jn) , 'T', 1. , ztmlres(:,:,jn) , 'T', 1., & 
    422                      &                ztmlatf(:,:,jn) , 'T', 1. , ztmlrad(:,:,jn) , 'T', 1. ) 
     421                  CALL lbc_lnk_multi( 'trdmxl_trc', ztmltot(:,:,jn) , 'T', 1._wp , ztmlres(:,:,jn) , 'T', 1._wp, & 
     422                     &                ztmlatf(:,:,jn) , 'T', 1._wp , ztmlrad(:,:,jn) , 'T', 1._wp ) 
    423423               ENDIF 
    424424 
     
    470470         !-- Lateral boundary conditions  
    471471               IF ( cn_cfg .NE. 'gyre' ) THEN            ! other than GYRE configuration     
    472                   CALL lbc_lnk_multi( 'trdmxl_trc', ztmltot2(:,:,jn), 'T', 1., ztmlres2(:,:,jn), 'T', 1. ) 
     472                  CALL lbc_lnk_multi( 'trdmxl_trc', ztmltot2(:,:,jn), 'T', 1., ztmlres2(:,:,jn), 'T', 1.) 
    473473                  DO jl = 1, jpltrd_trc 
    474474                     CALL lbc_lnk( 'trdmxl_trc', ztmltrd2(:,:,jl,jn), 'T', 1. )       ! will be output in the NetCDF trends file 
     
    986986   !!====================================================================== 
    987987END MODULE trdmxl_trc 
     988 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/TOP/TRP/trdtrc.F90

    r13226 r14219  
    4141      INTEGER, INTENT( in )  ::   kjn                                 ! tracer index 
    4242      INTEGER, INTENT( in )  ::   ktrd                                ! tracer trend index 
    43       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT( inout )  ::   ptrtrd  ! Temperature or U trend 
     43      REAL(dp), DIMENSION(jpi,jpj,jpk), INTENT( inout )  ::   ptrtrd  ! Temperature or U trend 
    4444      CHARACTER (len=20) :: cltra 
    4545      !!---------------------------------------------------------------------- 
     
    119119      INTEGER               , INTENT( in )     ::   kjn     ! tracer index 
    120120      INTEGER               , INTENT( in )     ::   ktrd    ! tracer trend index 
    121       REAL(wp), DIMENSION(:,:,:), INTENT( inout )  ::   ptrtrd  ! Temperature or U trend 
     121      REAL(dp), DIMENSION(:,:,:), INTENT( inout )  ::   ptrtrd  ! Temperature or U trend 
    122122      WRITE(*,*) 'trd_trc : You should not have seen this print! error?', ptrtrd(1,1,1) 
    123123      WRITE(*,*) '  "      "      : You should not have seen this print! error?', kjn 
Note: See TracChangeset for help on using the changeset viewer.