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 12724 for NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA – NEMO

Ignore:
Timestamp:
2020-04-08T21:37:59+02:00 (4 years ago)
Author:
techene
Message:

branch KERNEL-06 : merge with trunk@12698 #2385 - in duplcated files : changes to comply to the new trunk variables and some loop bug fixes

Location:
NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3

    • Property svn:externals
      •  

        old new  
        33^/utils/build/mk@HEAD         mk 
        44^/utils/tools@HEAD            tools 
        5 ^/vendors/AGRIF/dev_r11615_ENHANCE-04_namelists_as_internalfiles_agrif@HEAD      ext/AGRIF 
         5^/vendors/AGRIF/dev@HEAD      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
         8 
         9# SETTE 
         10^/utils/CI/sette@HEAD         sette 
  • NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA/eosbn2.F90

    r12622 r12724  
    192192      !!                   ***  ROUTINE eos_insitu  *** 
    193193      !! 
    194       !! ** Purpose :   Compute the in situ density (ratio rho/rau0) from 
     194      !! ** Purpose :   Compute the in situ density (ratio rho/rho0) from 
    195195      !!       potential temperature and salinity using an equation of state 
    196196      !!       selected in the nameos namelist 
    197197      !! 
    198       !! ** Method  :   prd(t,s,z) = ( rho(t,s,z) - rau0 ) / rau0 
     198      !! ** Method  :   prd(t,s,z) = ( rho(t,s,z) - rho0 ) / rho0 
    199199      !!         with   prd    in situ density anomaly      no units 
    200200      !!                t      TEOS10: CT or EOS80: PT      Celsius 
     
    202202      !!                z      depth                        meters 
    203203      !!                rho    in situ density              kg/m^3 
    204       !!                rau0   reference density            kg/m^3 
     204      !!                rho0   reference density            kg/m^3 
    205205      !! 
    206206      !!     ln_teos10 : polynomial TEOS-10 equation of state is used for rho(t,s,z). 
     
    211211      !! 
    212212      !!     ln_seos : simplified equation of state 
    213       !!              prd(t,s,z) = ( -a0*(1+lambda/2*(T-T0)+mu*z+nu*(S-S0))*(T-T0) + b0*(S-S0) ) / rau0 
     213      !!              prd(t,s,z) = ( -a0*(1+lambda/2*(T-T0)+mu*z+nu*(S-S0))*(T-T0) + b0*(S-S0) ) / rho0 
    214214      !!              linear case function of T only: rn_alpha<>0, other coefficients = 0 
    215215      !!              linear eos function of T and S: rn_alpha and rn_beta<>0, other coefficients=0 
     
    268268            zn  = ( ( zn3 * zh + zn2 ) * zh + zn1 ) * zh + zn0 
    269269            ! 
    270             prd(ji,jj,jk) = (  zn * r1_rau0 - 1._wp  ) * ztm  ! density anomaly (masked) 
     270            prd(ji,jj,jk) = (  zn * r1_rho0 - 1._wp  ) * ztm  ! density anomaly (masked) 
    271271            ! 
    272272         END_3D 
     
    284284               &  - rn_nu * zt * zs 
    285285               !                                  
    286             prd(ji,jj,jk) = zn * r1_rau0 * ztm                ! density anomaly (masked) 
     286            prd(ji,jj,jk) = zn * r1_rho0 * ztm                ! density anomaly (masked) 
    287287         END_3D 
    288288         ! 
     
    300300      !!                  ***  ROUTINE eos_insitu_pot  *** 
    301301      !! 
    302       !! ** Purpose :   Compute the in situ density (ratio rho/rau0) and the 
     302      !! ** Purpose :   Compute the in situ density (ratio rho/rho0) and the 
    303303      !!      potential volumic mass (Kg/m3) from potential temperature and 
    304304      !!      salinity fields using an equation of state selected in the 
     
    380380                  prhop(ji,jj,jk) = prhop(ji,jj,jk) + zn0_sto(jsmp)                      ! potential density referenced at the surface 
    381381                  ! 
    382                   prd(ji,jj,jk) = prd(ji,jj,jk) + (  zn_sto(jsmp) * r1_rau0 - 1._wp  )   ! density anomaly (masked) 
     382                  prd(ji,jj,jk) = prd(ji,jj,jk) + (  zn_sto(jsmp) * r1_rho0 - 1._wp  )   ! density anomaly (masked) 
    383383               END DO 
    384384               prhop(ji,jj,jk) = 0.5_wp * prhop(ji,jj,jk) * ztm / nn_sto_eos 
     
    420420               prhop(ji,jj,jk) = zn0 * ztm                           ! potential density referenced at the surface 
    421421               ! 
    422                prd(ji,jj,jk) = (  zn * r1_rau0 - 1._wp  ) * ztm      ! density anomaly (masked) 
     422               prd(ji,jj,jk) = (  zn * r1_rho0 - 1._wp  ) * ztm      ! density anomaly (masked) 
    423423            END_3D 
    424424         ENDIF 
     
    435435               &  + rn_b0 * ( 1._wp - 0.5_wp*rn_lambda2*zs ) * zs   & 
    436436               &  - rn_nu * zt * zs 
    437             prhop(ji,jj,jk) = ( rau0 + zn ) * ztm 
     437            prhop(ji,jj,jk) = ( rho0 + zn ) * ztm 
    438438            !                                                     ! density anomaly (masked) 
    439439            zn = zn - ( rn_a0 * rn_mu1 * zt + rn_b0 * rn_mu2 * zs ) * zh 
    440             prd(ji,jj,jk) = zn * r1_rau0 * ztm 
     440            prd(ji,jj,jk) = zn * r1_rho0 * ztm 
    441441            ! 
    442442         END_3D 
     
    455455      !!                  ***  ROUTINE eos_insitu_2d  *** 
    456456      !! 
    457       !! ** Purpose :   Compute the in situ density (ratio rho/rau0) from 
     457      !! ** Purpose :   Compute the in situ density (ratio rho/rho0) from 
    458458      !!      potential temperature and salinity using an equation of state 
    459459      !!      selected in the nameos namelist. * 2D field case 
     
    509509            zn  = ( ( zn3 * zh + zn2 ) * zh + zn1 ) * zh + zn0 
    510510            ! 
    511             prd(ji,jj) = zn * r1_rau0 - 1._wp               ! unmasked in situ density anomaly 
     511            prd(ji,jj) = zn * r1_rho0 - 1._wp               ! unmasked in situ density anomaly 
    512512            ! 
    513513         END_2D 
     
    525525               &  - rn_nu * zt * zs 
    526526               ! 
    527             prd(ji,jj) = zn * r1_rau0               ! unmasked in situ density anomaly 
     527            prd(ji,jj) = zn * r1_rho0               ! unmasked in situ density anomaly 
    528528            ! 
    529529         END_2D 
     
    589589            zn  = ( ( zn3 * zh + zn2 ) * zh + zn1 ) * zh + zn0 
    590590            ! 
    591             pab(ji,jj,jk,jp_tem) = zn * r1_rau0 * ztm 
     591            pab(ji,jj,jk,jp_tem) = zn * r1_rho0 * ztm 
    592592            ! 
    593593            ! beta 
     
    610610            zn  = ( ( zn3 * zh + zn2 ) * zh + zn1 ) * zh + zn0 
    611611            ! 
    612             pab(ji,jj,jk,jp_sal) = zn / zs * r1_rau0 * ztm 
     612            pab(ji,jj,jk,jp_sal) = zn / zs * r1_rho0 * ztm 
    613613            ! 
    614614         END_3D 
     
    623623            ! 
    624624            zn  = rn_a0 * ( 1._wp + rn_lambda1*zt + rn_mu1*zh ) + rn_nu*zs 
    625             pab(ji,jj,jk,jp_tem) = zn * r1_rau0 * ztm   ! alpha 
     625            pab(ji,jj,jk,jp_tem) = zn * r1_rho0 * ztm   ! alpha 
    626626            ! 
    627627            zn  = rn_b0 * ( 1._wp - rn_lambda2*zs - rn_mu2*zh ) - rn_nu*zt 
    628             pab(ji,jj,jk,jp_sal) = zn * r1_rau0 * ztm   ! beta 
     628            pab(ji,jj,jk,jp_sal) = zn * r1_rho0 * ztm   ! beta 
    629629            ! 
    630630         END_3D 
     
    695695            zn  = ( ( zn3 * zh + zn2 ) * zh + zn1 ) * zh + zn0 
    696696            ! 
    697             pab(ji,jj,jp_tem) = zn * r1_rau0 
     697            pab(ji,jj,jp_tem) = zn * r1_rho0 
    698698            ! 
    699699            ! beta 
     
    716716            zn  = ( ( zn3 * zh + zn2 ) * zh + zn1 ) * zh + zn0 
    717717            ! 
    718             pab(ji,jj,jp_sal) = zn / zs * r1_rau0 
     718            pab(ji,jj,jp_sal) = zn / zs * r1_rho0 
    719719            ! 
    720720            ! 
     
    730730            ! 
    731731            zn  = rn_a0 * ( 1._wp + rn_lambda1*zt + rn_mu1*zh ) + rn_nu*zs 
    732             pab(ji,jj,jp_tem) = zn * r1_rau0   ! alpha 
     732            pab(ji,jj,jp_tem) = zn * r1_rho0   ! alpha 
    733733            ! 
    734734            zn  = rn_b0 * ( 1._wp - rn_lambda2*zs - rn_mu2*zh ) - rn_nu*zt 
    735             pab(ji,jj,jp_sal) = zn * r1_rau0   ! beta 
     735            pab(ji,jj,jp_sal) = zn * r1_rho0   ! beta 
    736736            ! 
    737737         END_2D 
     
    800800         zn  = ( ( zn3 * zh + zn2 ) * zh + zn1 ) * zh + zn0 
    801801         ! 
    802          pab(jp_tem) = zn * r1_rau0 
     802         pab(jp_tem) = zn * r1_rho0 
    803803         ! 
    804804         ! beta 
     
    821821         zn  = ( ( zn3 * zh + zn2 ) * zh + zn1 ) * zh + zn0 
    822822         ! 
    823          pab(jp_sal) = zn / zs * r1_rau0 
     823         pab(jp_sal) = zn / zs * r1_rho0 
    824824         ! 
    825825         ! 
     
    832832         ! 
    833833         zn  = rn_a0 * ( 1._wp + rn_lambda1*zt + rn_mu1*zh ) + rn_nu*zs 
    834          pab(jp_tem) = zn * r1_rau0   ! alpha 
     834         pab(jp_tem) = zn * r1_rho0   ! alpha 
    835835         ! 
    836836         zn  = rn_b0 * ( 1._wp - rn_lambda2*zs - rn_mu2*zh ) - rn_nu*zt 
    837          pab(jp_sal) = zn * r1_rau0   ! beta 
     837         pab(jp_sal) = zn * r1_rho0   ! beta 
    838838         ! 
    839839      CASE DEFAULT 
     
    10531053      !! ** Method  :   PE is defined analytically as the vertical  
    10541054      !!                   primitive of EOS times -g integrated between 0 and z>0. 
    1055       !!                pen is the nonlinear bsq-PE anomaly: pen = ( PE - rau0 gz ) / rau0 gz - rd 
     1055      !!                pen is the nonlinear bsq-PE anomaly: pen = ( PE - rho0 gz ) / rho0 gz - rd 
    10561056      !!                                                      = 1/z * /int_0^z rd dz - rd  
    10571057      !!                                where rd is the density anomaly (see eos_rhd function) 
    10581058      !!                ab_pe are partial derivatives of PE anomaly with respect to T and S: 
    1059       !!                    ab_pe(1) = - 1/(rau0 gz) * dPE/dT + drd/dT = - d(pen)/dT 
    1060       !!                    ab_pe(2) =   1/(rau0 gz) * dPE/dS + drd/dS =   d(pen)/dS 
     1059      !!                    ab_pe(1) = - 1/(rho0 gz) * dPE/dT + drd/dT = - d(pen)/dT 
     1060      !!                    ab_pe(2) =   1/(rho0 gz) * dPE/dS + drd/dS =   d(pen)/dS 
    10611061      !! 
    10621062      !! ** Action  : - pen         : PE anomaly given at T-points 
     
    11041104            zn  = ( zn2 * zh + zn1 ) * zh + zn0 
    11051105            ! 
    1106             ppen(ji,jj,jk)  = zn * zh * r1_rau0 * ztm 
     1106            ppen(ji,jj,jk)  = zn * zh * r1_rho0 * ztm 
    11071107            ! 
    11081108            ! alphaPE non-linear anomaly 
     
    11191119            zn  = ( zn2 * zh + zn1 ) * zh + zn0 
    11201120            !                               
    1121             pab_pe(ji,jj,jk,jp_tem) = zn * zh * r1_rau0 * ztm 
     1121            pab_pe(ji,jj,jk,jp_tem) = zn * zh * r1_rho0 * ztm 
    11221122            ! 
    11231123            ! betaPE non-linear anomaly 
     
    11341134            zn  = ( zn2 * zh + zn1 ) * zh + zn0 
    11351135            !                               
    1136             pab_pe(ji,jj,jk,jp_sal) = zn / zs * zh * r1_rau0 * ztm 
     1136            pab_pe(ji,jj,jk,jp_sal) = zn / zs * zh * r1_rho0 * ztm 
    11371137            ! 
    11381138         END_3D 
     
    11451145            zh  = gdept(ji,jj,jk,Kmm)              ! depth in meters  at t-point 
    11461146            ztm = tmask(ji,jj,jk)                ! tmask 
    1147             zn  = 0.5_wp * zh * r1_rau0 * ztm 
     1147            zn  = 0.5_wp * zh * r1_rho0 * ztm 
    11481148            !                                    ! Potential Energy 
    11491149            ppen(ji,jj,jk) = ( rn_a0 * rn_mu1 * zt + rn_b0 * rn_mu2 * zs ) * zn 
     
    11871187      IF(lwm) WRITE( numond, nameos ) 
    11881188      ! 
    1189       rau0        = 1026._wp                 !: volumic mass of reference     [kg/m3] 
     1189      rho0        = 1026._wp                 !: volumic mass of reference     [kg/m3] 
    11901190      rcp         = 3991.86795711963_wp      !: heat capacity     [J/K] 
    11911191      ! 
     
    15991599            WRITE(numout,*) '   ==>>>   use of simplified eos:    ' 
    16001600            WRITE(numout,*) '              rhd(dT=T-10,dS=S-35,Z) = [-a0*(1+lambda1/2*dT+mu1*Z)*dT ' 
    1601             WRITE(numout,*) '                                       + b0*(1+lambda2/2*dT+mu2*Z)*dS - nu*dT*dS] / rau0' 
     1601            WRITE(numout,*) '                                       + b0*(1+lambda2/2*dT+mu2*Z)*dS - nu*dT*dS] / rho0' 
    16021602            WRITE(numout,*) '              with the following coefficients :' 
    16031603            WRITE(numout,*) '                 thermal exp. coef.    rn_a0      = ', rn_a0 
     
    16181618      END SELECT 
    16191619      ! 
    1620       rau0_rcp    = rau0 * rcp  
    1621       r1_rau0     = 1._wp / rau0 
     1620      rho0_rcp    = rho0 * rcp  
     1621      r1_rho0     = 1._wp / rho0 
    16221622      r1_rcp      = 1._wp / rcp 
    1623       r1_rau0_rcp = 1._wp / rau0_rcp  
     1623      r1_rho0_rcp = 1._wp / rho0_rcp  
    16241624      ! 
    16251625      IF(lwp) THEN 
     
    16361636      IF(lwp) WRITE(numout,*) 
    16371637      IF(lwp) WRITE(numout,*) '   Associated physical constant' 
    1638       IF(lwp) WRITE(numout,*) '      volumic mass of reference           rau0  = ', rau0   , ' kg/m^3' 
    1639       IF(lwp) WRITE(numout,*) '      1. / rau0                        r1_rau0  = ', r1_rau0, ' m^3/kg' 
     1638      IF(lwp) WRITE(numout,*) '      volumic mass of reference           rho0  = ', rho0   , ' kg/m^3' 
     1639      IF(lwp) WRITE(numout,*) '      1. / rho0                        r1_rho0  = ', r1_rho0, ' m^3/kg' 
    16401640      IF(lwp) WRITE(numout,*) '      ocean specific heat                 rcp   = ', rcp    , ' J/Kelvin' 
    1641       IF(lwp) WRITE(numout,*) '      rau0 * rcp                       rau0_rcp = ', rau0_rcp 
    1642       IF(lwp) WRITE(numout,*) '      1. / ( rau0 * rcp )           r1_rau0_rcp = ', r1_rau0_rcp 
     1641      IF(lwp) WRITE(numout,*) '      rho0 * rcp                       rho0_rcp = ', rho0_rcp 
     1642      IF(lwp) WRITE(numout,*) '      1. / ( rho0 * rcp )           r1_rho0_rcp = ', r1_rho0_rcp 
    16431643      ! 
    16441644   END SUBROUTINE eos_init 
  • NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA/traadv.F90

    r12624 r12724  
    9393      IF( ln_timing )   CALL timing_start('tra_adv') 
    9494      ! 
    95       !                                          ! set time step 
    96       IF( neuler == 0 .AND. kt == nit000 ) THEN   ;   r2dt =         rdt   ! at nit000             (Euler) 
    97       ELSEIF( kt <= nit000 + 1 )           THEN   ;   r2dt = 2._wp * rdt   ! at nit000 or nit000+1 (Leapfrog) 
    98       ENDIF 
    99       ! 
    10095      !                                         !==  effective transport  ==! 
    10196      zuu(:,:,jpk) = 0._wp 
     
    153148         CALL tra_adv_cen    ( kt, nit000, 'TRA',         zuu, zvv, zww, Kmm, pts, jpts, Krhs, nn_cen_h, nn_cen_v ) 
    154149      CASE ( np_FCT )                                 ! FCT scheme      : 2nd / 4th order 
    155          CALL tra_adv_fct    ( kt, nit000, 'TRA', r2dt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, nn_fct_h, nn_fct_v ) 
     150         CALL tra_adv_fct    ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, nn_fct_h, nn_fct_v ) 
    156151      CASE ( np_MUS )                                 ! MUSCL 
    157          CALL tra_adv_mus    ( kt, nit000, 'TRA', r2dt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, ln_mus_ups )  
     152         CALL tra_adv_mus    ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, ln_mus_ups )  
    158153      CASE ( np_UBS )                                 ! UBS 
    159          CALL tra_adv_ubs    ( kt, nit000, 'TRA', r2dt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, nn_ubs_v   ) 
     154         CALL tra_adv_ubs    ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, nn_ubs_v   ) 
    160155      CASE ( np_QCK )                                 ! QUICKEST 
    161          CALL tra_adv_qck    ( kt, nit000, 'TRA', r2dt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs ) 
     156         CALL tra_adv_qck    ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs ) 
    162157      ! 
    163158      END SELECT 
  • NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA/traadv_fct.F90

    r12590 r12724  
    2020   USE diaptr         ! poleward transport diagnostics 
    2121   USE diaar5         ! AR5 diagnostics 
    22    USE phycst  , ONLY : rau0_rcp 
     22   USE phycst  , ONLY : rho0_rcp 
    2323   USE zdf_oce , ONLY : ln_zad_Aimp 
    2424   ! 
  • NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA/traatf.F90

    r12680 r12724  
    114114      IF( ln_bdy )   CALL bdy_tra( kt, Kbb, pts, Kaa )  ! BDY open boundaries 
    115115 
    116       ! set time step size (Euler/Leapfrog) 
    117       IF( neuler == 0 .AND. kt == nit000 ) THEN   ;   r2dt =        rdt   ! at nit000             (Euler) 
    118       ELSEIF( kt <= nit000 + 1 )           THEN   ;   r2dt = 2._wp* rdt   ! at nit000 or nit000+1 (Leapfrog) 
    119       ENDIF 
    120  
    121116      ! trends computation initialisation 
    122117      IF( l_trdtra )   THEN 
     
    129124         ENDIF 
    130125         ! total trend for the non-time-filtered variables. 
    131          zfact = 1.0 / rdt 
     126         zfact = 1.0 / rn_Dt 
    132127         ! G Nurser 23 Mar 2017. Recalculate trend as Delta(e3t*T)/e3tn; e3tn cancel from pts(Kmm) terms 
    133128         DO jk = 1, jpkm1 
     
    145140      ENDIF 
    146141 
    147       IF( neuler == 0 .AND. kt == nit000 ) THEN       ! Euler time-stepping 
     142      IF( l_1st_euler ) THEN       ! Euler time-stepping  
    148143         ! 
    149144         IF (l_trdtra .AND. .NOT. ln_linssh ) THEN   ! Zero Asselin filter contribution must be explicitly written out since for vvl 
     
    157152      ELSE                                            ! Leap-Frog + Asselin filter time stepping 
    158153         ! 
    159          IF( ln_linssh ) THEN   ;   CALL tra_atf_fix( kt, Kbb, Kmm, Kaa, nit000,      'TRA', pts, jpts )  ! linear free surface 
    160          ELSE                   ;   CALL tra_atf_vvl( kt, Kbb, Kmm, Kaa, nit000, rdt, 'TRA', pts, sbc_tsc, sbc_tsc_b, jpts )  ! non-linear free surface 
     154         IF( ln_linssh ) THEN   ;   CALL tra_atf_fix( kt, Kbb, Kmm, Kaa, nit000,        'TRA', pts, jpts )  ! linear free surface  
     155         ELSE                   ;   CALL tra_atf_vvl( kt, Kbb, Kmm, Kaa, nit000, rn_Dt, 'TRA', pts, sbc_tsc, sbc_tsc_b, jpts )  ! non-linear free surface 
    161156         ENDIF 
    162157         ! 
     
    167162      ENDIF 
    168163      ! 
    169       IF( l_trdtra .AND. ln_linssh ) THEN      ! trend of the Asselin filter (tb filtered - tb)/dt 
    170          zfact = 1._wp / r2dt 
     164      IF( l_trdtra .AND. ln_linssh ) THEN      ! trend of the Asselin filter (tb filtered - tb)/dt      
    171165         DO jk = 1, jpkm1 
    172             ztrdt(:,:,jk) = ( pts(:,:,jk,jp_tem,Kmm) - ztrdt(:,:,jk) ) * zfact 
    173             ztrds(:,:,jk) = ( pts(:,:,jk,jp_sal,Kmm) - ztrds(:,:,jk) ) * zfact 
     166            ztrdt(:,:,jk) = ( pts(:,:,jk,jp_tem,Kmm) - ztrdt(:,:,jk) ) * r1_Dt 
     167            ztrds(:,:,jk) = ( pts(:,:,jk,jp_sal,Kmm) - ztrds(:,:,jk) ) * r1_Dt 
    174168         END DO 
    175169         CALL trd_tra( kt, Kmm, Kaa, 'TRA', jp_tem, jptra_atf, ztrdt ) 
     
    220214            ztd = pt(ji,jj,jk,jn,Kaa) - 2._wp * ztn + pt(ji,jj,jk,jn,Kbb)  ! time laplacian on tracers 
    221215            ! 
    222             pt(ji,jj,jk,jn,Kmm) = ztn + atfp * ztd                      ! pt <-- filtered pt 
     216            pt(ji,jj,jk,jn,Kmm) = ztn + rn_atfp * ztd                      ! pt <-- filtered pt 
    223217         END_3D 
    224218         ! 
     
    235229      !! 
    236230      !! ** Method  : - Apply a thickness weighted Asselin time filter on now fields. 
    237       !!             pt(Kmm)  = ( e3t_Kmm*pt(Kmm) + atfp*[ e3t_Kbb*pt(Kbb) - 2 e3t_Kmm*pt(Kmm) + e3t_Kaa*pt(Kaa) ] ) 
    238       !!                       /( e3t_Kmm         + atfp*[ e3t_Kbb         - 2 e3t_Kmm         + e3t_Kaa    ] ) 
     231      !!             pt(Kmm)  = ( e3t_Kmm*pt(Kmm) + rn_atfp*[ e3t_Kbb*pt(Kbb) - 2 e3t_Kmm*pt(Kmm) + e3t_Kaa*pt(Kaa) ] ) 
     232      !!                       /( e3t_Kmm         + rn_atfp*[ e3t_Kbb         - 2 e3t_Kmm         + e3t_Kaa    ] ) 
    239233      !! 
    240234      !! ** Action  : - pt(Kmm) ready for the next time step 
     
    278272      ENDIF 
    279273      zfact = 1._wp / p2dt 
    280       zfact1 = atfp * p2dt 
    281       zfact2 = zfact1 * r1_rau0 
     274      zfact1 = rn_atfp * p2dt 
     275      zfact2 = zfact1 * r1_rho0 
    282276      DO jn = 1, kjpt 
    283277         DO_3D_00_00( 1, jpkm1 ) 
     
    293287            ztc_d  = ztc_a  - 2. * ztc_n  + ztc_b 
    294288            ! 
    295             ze3t_f = ze3t_n + atfp * ze3t_d 
    296             ztc_f  = ztc_n  + atfp * ztc_d 
     289            ze3t_f = ze3t_n + rn_atfp * ze3t_d 
     290            ztc_f  = ztc_n  + rn_atfp * ztc_d 
    297291            ! 
    298292            ! Add asselin correction on scale factors: 
  • NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA/traatfQCO.F90

    r12624 r12724  
    114114!       IF( ln_bdy )   CALL bdy_tra( kt, Kbb, pts, Kaa )  ! BDY open boundaries 
    115115 
    116       ! set time step size (Euler/Leapfrog) 
    117       IF( neuler == 0 .AND. kt == nit000 ) THEN   ;   r2dt =        rdt   ! at nit000             (Euler) 
    118       ELSEIF( kt <= nit000 + 1 )           THEN   ;   r2dt = 2._wp* rdt   ! at nit000 or nit000+1 (Leapfrog) 
    119       ENDIF 
    120  
    121116      ! trends computation initialisation 
    122117      IF( l_trdtra )   THEN 
     
    129124         ENDIF 
    130125         ! total trend for the non-time-filtered variables. 
    131          zfact = 1.0 / rdt 
     126         zfact = 1.0 / rn_Dt 
    132127         ! G Nurser 23 Mar 2017. Recalculate trend as Delta(e3t*T)/e3tn; e3tn cancel from pts(Kmm) terms 
    133128         DO jk = 1, jpkm1 
     
    149144      ENDIF 
    150145 
    151       IF( neuler == 0 .AND. kt == nit000 ) THEN       ! Euler time-stepping 
     146      IF( l_1st_euler ) THEN       ! Euler time-stepping 
    152147         ! 
    153148         IF (l_trdtra .AND. .NOT. ln_linssh ) THEN   ! Zero Asselin filter contribution must be explicitly written out since for vvl 
     
    161156      ELSE                                            ! Leap-Frog + Asselin filter time stepping 
    162157         ! 
    163          IF ( ln_linssh ) THEN   ;   CALL tra_atf_fix_lf( kt, Kbb, Kmm, Kaa, nit000,      'TRA', pts, jpts )  ! linear free surface 
    164          ELSE                    ;   CALL tra_atf_qco_lf( kt, Kbb, Kmm, Kaa, nit000, rdt, 'TRA', pts, sbc_tsc, sbc_tsc_b, jpts )  ! non-linear free surface 
     158         IF ( ln_linssh ) THEN   ;   CALL tra_atf_fix_lf( kt, Kbb, Kmm, Kaa, nit000,        'TRA', pts, jpts )  ! linear free surface 
     159         ELSE                    ;   CALL tra_atf_qco_lf( kt, Kbb, Kmm, Kaa, nit000, rn_Dt, 'TRA', pts, sbc_tsc, sbc_tsc_b, jpts )  ! non-linear free surface 
    165160         ENDIF 
    166161         ! 
     
    172167      ! 
    173168      IF( l_trdtra .AND. ln_linssh ) THEN      ! trend of the Asselin filter (tb filtered - tb)/dt 
    174          zfact = 1._wp / r2dt 
    175169         DO jk = 1, jpkm1 
    176             ztrdt(:,:,jk) = ( pts(:,:,jk,jp_tem,Kmm) - ztrdt(:,:,jk) ) * zfact 
    177             ztrds(:,:,jk) = ( pts(:,:,jk,jp_sal,Kmm) - ztrds(:,:,jk) ) * zfact 
     170            ztrdt(:,:,jk) = ( pts(:,:,jk,jp_tem,Kmm) - ztrdt(:,:,jk) ) * r1_Dt 
     171            ztrds(:,:,jk) = ( pts(:,:,jk,jp_sal,Kmm) - ztrds(:,:,jk) ) * r1_Dt 
    178172         END DO 
    179173         CALL trd_tra( kt, Kmm, Kaa, 'TRA', jp_tem, jptra_atf, ztrdt ) 
     
    224218            ztd = pt(ji,jj,jk,jn,Kaa) - 2._wp * ztn + pt(ji,jj,jk,jn,Kbb)  ! time laplacian on tracers 
    225219            ! 
    226             pt(ji,jj,jk,jn,Kmm) = ztn + atfp * ztd                      ! pt <-- filtered pt 
     220            pt(ji,jj,jk,jn,Kmm) = ztn + rn_atfp * ztd                      ! pt <-- filtered pt 
    227221         END_3D 
    228222         ! 
     
    239233      !! 
    240234      !! ** Method  : - Apply a thickness weighted Asselin time filter on now fields. 
    241       !!             pt(Kmm)  = ( e3t_m*pt(Kmm) + atfp*[ e3t_b*pt(Kbb) - 2 e3t_m*pt(Kmm) + e3t_a*pt(Kaa) ] ) 
    242       !!                       /( e3t_m         + atfp*[ e3t_b         - 2 e3t_m         + e3t_a    ] ) 
     235      !!             pt(Kmm)  = ( e3t_m*pt(Kmm) + rn_atfp*[ e3t_b*pt(Kbb) - 2 e3t_m*pt(Kmm) + e3t_a*pt(Kaa) ] ) 
     236      !!                       /( e3t_m         + rn_atfp*[ e3t_b         - 2 e3t_m         + e3t_a    ] ) 
    243237      !! 
    244238      !! ** Action  : - pt(Kmm) ready for the next time step 
     
    282276      ENDIF 
    283277      zfact = 1._wp / p2dt 
    284       zfact1 = atfp * p2dt 
    285       zfact2 = zfact1 * r1_rau0 
     278      zfact1 = rn_atfp * p2dt 
     279      zfact2 = zfact1 * r1_rho0 
    286280      DO jn = 1, kjpt 
    287281         DO_3D_00_00( 1, jpkm1 ) 
     
    297291            ztc_d  = ztc_a  - 2. * ztc_n  + ztc_b 
    298292            ! 
    299             ztc_f  = ztc_n  + atfp * ztc_d 
     293            ztc_f  = ztc_n  + rn_atfp * ztc_d 
    300294            ! 
    301295            ! Asselin correction on scale factors is done via ssh in r3t_f 
  • NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA/trabbc.F90

    r12590 r12724  
    6767      !!       ocean bottom can be computed once and is added to the temperature 
    6868      !!       trend juste above the bottom at each time step: 
    69       !!            ta = ta + Qsf / (rau0 rcp e3T) for k= mbkt 
     69      !!            ta = ta + Qsf / (rho0 rcp e3T) for k= mbkt 
    7070      !!       Where Qsf is the geothermal heat flux. 
    7171      !! 
     
    104104      ENDIF 
    105105      ! 
    106       CALL iom_put ( "hfgeou" , rau0_rcp * qgh_trd0(:,:) ) 
     106      CALL iom_put ( "hfgeou" , rho0_rcp * qgh_trd0(:,:) ) 
    107107      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' bbc  - Ta: ', mask1=tmask, clinfo3='tra-ta' ) 
    108108      ! 
     
    164164         CASE ( 1 )                          !* constant flux 
    165165            IF(lwp) WRITE(numout,*) '   ==>>>   constant heat flux  =   ', rn_geoflx_cst 
    166             qgh_trd0(:,:) = r1_rau0_rcp * rn_geoflx_cst 
     166            qgh_trd0(:,:) = r1_rho0_rcp * rn_geoflx_cst 
    167167            ! 
    168168         CASE ( 2 )                          !* variable geothermal heat flux : read the geothermal fluxes in mW/m2 
     
    181181 
    182182            CALL fld_read( nit000, 1, sf_qgh )                         ! Read qgh data 
    183             qgh_trd0(:,:) = r1_rau0_rcp * sf_qgh(1)%fnow(:,:,1) * 1.e-3 ! conversion in W/m2 
     183            qgh_trd0(:,:) = r1_rho0_rcp * sf_qgh(1)%fnow(:,:,1) * 1.e-3 ! conversion in W/m2 
    184184            ! 
    185185         CASE DEFAULT 
  • NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA/traldf_iso.F90

    r12622 r12724  
    110110      REAL(wp) ::  zmsku, zahu_w, zabe1, zcof1, zcoef3   ! local scalars 
    111111      REAL(wp) ::  zmskv, zahv_w, zabe2, zcof2, zcoef4   !   -      - 
    112       REAL(wp) ::  zcoef0, ze3w_2, zsign, z2dt, z1_2dt   !   -      - 
     112      REAL(wp) ::  zcoef0, ze3w_2, zsign                 !   -      - 
    113113      REAL(wp), DIMENSION(jpi,jpj)     ::   zdkt, zdk1t, z2d 
    114114      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zdit, zdjt, zftu, zftv, ztfw 
     
    130130         &                        iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  ) )   l_hst = .TRUE. 
    131131      ! 
    132       !                                            ! set time step size (Euler/Leapfrog) 
    133       IF( neuler == 0 .AND. kt == nit000 ) THEN   ;   z2dt =     rdt      ! at nit000   (Euler) 
    134       ELSE                                        ;   z2dt = 2.* rdt      !             (Leapfrog) 
    135       ENDIF 
    136       z1_2dt = 1._wp / z2dt 
    137132      ! 
    138133      IF( kpass == 1 ) THEN   ;   zsign =  1._wp      ! bilaplacian operator require a minus sign (eddy diffusivity >0) 
     
    182177               DO_3D_10_10( 2, jpkm1 ) 
    183178                  ze3w_2 = e3w(ji,jj,jk,Kmm) * e3w(ji,jj,jk,Kmm) 
    184                   zcoef0 = z2dt * (  akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ze3w_2  ) 
    185                   akz(ji,jj,jk) = MAX( zcoef0 - 0.5_wp , 0._wp ) * ze3w_2 * z1_2dt 
     179                  zcoef0 = rDt * (  akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ze3w_2  ) 
     180                  akz(ji,jj,jk) = MAX( zcoef0 - 0.5_wp , 0._wp ) * ze3w_2 * r1_Dt 
    186181               END_3D 
    187182           ENDIF 
  • NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA/traldf_triad.F90

    r12622 r12724  
    8787      INTEGER  ::  ip,jp,kp         ! dummy loop indices 
    8888      INTEGER  ::  ierr            ! local integer 
    89       REAL(wp) ::  zmsku, zabe1, zcof1, zcoef3          ! local scalars 
    90       REAL(wp) ::  zmskv, zabe2, zcof2, zcoef4          !   -      - 
    91       REAL(wp) ::  zcoef0, ze3w_2, zsign, z2dt, z1_2dt  !   -      - 
     89      REAL(wp) ::  zmsku, zabe1, zcof1, zcoef3    ! local scalars 
     90      REAL(wp) ::  zmskv, zabe2, zcof2, zcoef4    !   -      - 
     91      REAL(wp) ::  zcoef0, ze3w_2, zsign          !   -      - 
    9292      ! 
    9393      REAL(wp) ::   zslope_skew, zslope_iso, zslope2, zbu, zbv 
     
    112112      l_hst = .FALSE. 
    113113      l_ptr = .FALSE. 
    114       IF( cdtype == 'TRA' .AND. ( iom_use( 'sophtldf' ) .OR. iom_use( 'sopstldf' ) ) )      l_ptr = .TRUE. 
    115       IF( cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 
    116          &                        iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  ) )   l_hst = .TRUE. 
    117       ! 
    118       !                                                        ! set time step size (Euler/Leapfrog) 
    119       IF( neuler == 0 .AND. kt == kit000 ) THEN   ;   z2dt =     rdt      ! at nit000   (Euler) 
    120       ELSE                                        ;   z2dt = 2.* rdt      !             (Leapfrog) 
     114      IF( cdtype == 'TRA' ) THEN 
     115         IF( iom_use( 'sophtldf' ) .OR. iom_use( 'sopstldf') )      l_ptr = .TRUE.  
     116         IF( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR.                   & 
     117         &   iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  )   l_hst = .TRUE. 
    121118      ENDIF 
    122       z1_2dt = 1._wp / z2dt 
    123119      ! 
    124120      IF( kpass == 1 ) THEN   ;   zsign =  1._wp      ! bilaplacian operator require a minus sign (eddy diffusivity >0) 
     
    193189               DO_3D_10_10( 2, jpkm1 ) 
    194190                  ze3w_2 = e3w(ji,jj,jk,Kmm) * e3w(ji,jj,jk,Kmm) 
    195                   zcoef0 = z2dt * (  akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ze3w_2  ) 
    196                   akz(ji,jj,jk) = MAX( zcoef0 - 0.5_wp , 0._wp ) * ze3w_2 * z1_2dt 
     191                  zcoef0 = rDt * (  akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ze3w_2  ) 
     192                  akz(ji,jj,jk) = MAX( zcoef0 - 0.5_wp , 0._wp ) * ze3w_2 * r1_Dt 
    197193               END_3D 
    198194           ENDIF 
  • NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA/tramle.F90

    r12590 r12724  
    4141 
    4242   REAL(wp) ::   r5_21 = 5.e0 / 21.e0   ! factor used in mle streamfunction computation 
    43    REAL(wp) ::   rb_c                   ! ML buoyancy criteria = g rho_c /rau0 where rho_c is defined in zdfmld 
     43   REAL(wp) ::   rb_c                   ! ML buoyancy criteria = g rho_c /rho0 where rho_c is defined in zdfmld 
    4444   REAL(wp) ::   rc_f                   ! MLE coefficient (= rn_ce / (5 km * fo) ) in nn_mle=1 case 
    4545 
     
    113113         zc = e3t(ji,jj,jk,Kmm) * REAL( MIN( MAX( 0, inml_mle(ji,jj)-jk ) , 1  )  )    ! zc being 0 outside the ML t-points 
    114114         zmld(ji,jj) = zmld(ji,jj) + zc 
    115          zbm (ji,jj) = zbm (ji,jj) + zc * (rau0 - rhop(ji,jj,jk) ) * r1_rau0 
     115         zbm (ji,jj) = zbm (ji,jj) + zc * (rho0 - rhop(ji,jj,jk) ) * r1_rho0 
    116116         zn2 (ji,jj) = zn2 (ji,jj) + zc * (rn2(ji,jj,jk)+rn2(ji,jj,jk+1))*0.5_wp 
    117117      END_3D 
     
    274274      IF( ln_mle ) THEN                ! MLE initialisation 
    275275         ! 
    276          rb_c = grav * rn_rho_c_mle /rau0        ! Mixed Layer buoyancy criteria 
     276         rb_c = grav * rn_rho_c_mle /rho0        ! Mixed Layer buoyancy criteria 
    277277         IF(lwp) WRITE(numout,*) 
    278278         IF(lwp) WRITE(numout,*) '      ML buoyancy criteria = ', rb_c, ' m/s2 ' 
  • NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA/tranpc.F90

    r12590 r12724  
    6868      LOGICAL  ::   l_bottom_reached, l_column_treated 
    6969      REAL(wp) ::   zta, zalfa, zsum_temp, zsum_alfa, zaw, zdz, zsum_z 
    70       REAL(wp) ::   zsa, zbeta, zsum_sali, zsum_beta, zbw, zrw, z1_r2dt 
     70      REAL(wp) ::   zsa, zbeta, zsum_sali, zsum_beta, zbw, zrw, z1_rDt 
    7171      REAL(wp), PARAMETER ::   zn2_zero = 1.e-14_wp             ! acceptance criteria for neutrality (N2==0) 
    7272      REAL(wp), DIMENSION(        jpk     )   ::   zvn2         ! vertical profile of N2 at 1 given point... 
     
    302302         ! 
    303303         IF( l_trdtra ) THEN         ! send the Non penetrative mixing trends for diagnostic 
    304             z1_r2dt = 1._wp / (2._wp * rdt) 
    305             ztrdt(:,:,:) = ( pts(:,:,:,jp_tem,Kaa) - ztrdt(:,:,:) ) * z1_r2dt 
    306             ztrds(:,:,:) = ( pts(:,:,:,jp_sal,Kaa) - ztrds(:,:,:) ) * z1_r2dt 
     304            z1_rDt = 1._wp / (2._wp * rn_Dt) 
     305            ztrdt(:,:,:) = ( pts(:,:,:,jp_tem,Kaa) - ztrdt(:,:,:) ) * z1_rDt 
     306            ztrds(:,:,:) = ( pts(:,:,:,jp_sal,Kaa) - ztrds(:,:,:) ) * z1_rDt 
    307307            CALL trd_tra( kt, Kmm, Krhs, 'TRA', jp_tem, jptra_npc, ztrdt ) 
    308308            CALL trd_tra( kt, Kmm, Krhs, 'TRA', jp_sal, jptra_npc, ztrds ) 
  • NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA/traqsr.F90

    r12590 r12724  
    8888      !!         I(k) = Qsr*( rn_abs*EXP(z(k)/rn_si0) + (1.-rn_abs)*EXP(z(k)/rn_si1) ) 
    8989      !!         The temperature trend associated with the solar radiation penetration 
    90       !!         is given by : zta = 1/e3t dk[ I ] / (rau0*Cp) 
     90      !!         is given by : zta = 1/e3t dk[ I ] / (rho0*Cp) 
    9191      !!         At the bottom, boudary condition for the radiation is no flux : 
    9292      !!      all heat which has not been absorbed in the above levels is put 
     
    136136      !                         !-----------------------------------! 
    137137      IF( kt == nit000 ) THEN          !==  1st time step  ==! 
    138 !!gm case neuler  not taken into account.... 
    139          IF( ln_rstart .AND. iom_varid( numror, 'qsr_hc_b', ldstop = .FALSE. ) > 0 ) THEN    ! read in restart 
     138         IF( ln_rstart .AND. iom_varid( numror, 'qsr_hc_b', ldstop = .FALSE. ) > 0  .AND. .NOT.l_1st_euler ) THEN    ! read in restart 
    140139            IF(lwp) WRITE(numout,*) '          nit000-1 qsr tracer content forcing field read in the restart file' 
    141140            z1_2 = 0.5_wp 
     
    157156         ! 
    158157         DO jk = 1, nksr 
    159             qsr_hc(:,:,jk) = r1_rau0_rcp * ( etot3(:,:,jk) - etot3(:,:,jk+1) ) 
     158            qsr_hc(:,:,jk) = r1_rho0_rcp * ( etot3(:,:,jk) - etot3(:,:,jk+1) ) 
    160159         END DO 
    161160         ! 
     
    229228         ! 
    230229         DO_3D_00_00( 1, nksr ) 
    231             qsr_hc(ji,jj,jk) = r1_rau0_rcp * ( zea(ji,jj,jk) - zea(ji,jj,jk+1) ) 
     230            qsr_hc(ji,jj,jk) = r1_rho0_rcp * ( zea(ji,jj,jk) - zea(ji,jj,jk+1) ) 
    232231         END_3D 
    233232         ! 
     
    236235      CASE( np_2BD  )            !==  2-bands fluxes  ==! 
    237236         ! 
    238          zz0 =        rn_abs   * r1_rau0_rcp      ! surface equi-partition in 2-bands 
    239          zz1 = ( 1. - rn_abs ) * r1_rau0_rcp 
     237         zz0 =        rn_abs   * r1_rho0_rcp      ! surface equi-partition in 2-bands 
     238         zz1 = ( 1. - rn_abs ) * r1_rho0_rcp 
    240239         DO_3D_00_00( 1, nksr ) 
    241240            zc0 = zz0 * EXP( -gdepw(ji,jj,jk  ,Kmm)*xsi0r ) + zz1 * EXP( -gdepw(ji,jj,jk  ,Kmm)*xsi1r ) 
     
    255254      ! sea-ice: store the 1st ocean level attenuation coefficient 
    256255      DO_2D_00_00 
    257          IF( qsr(ji,jj) /= 0._wp ) THEN   ;   fraqsr_1lev(ji,jj) = qsr_hc(ji,jj,1) / ( r1_rau0_rcp * qsr(ji,jj) ) 
     256         IF( qsr(ji,jj) /= 0._wp ) THEN   ;   fraqsr_1lev(ji,jj) = qsr_hc(ji,jj,1) / ( r1_rho0_rcp * qsr(ji,jj) ) 
    258257         ELSE                             ;   fraqsr_1lev(ji,jj) = 1._wp 
    259258         ENDIF 
     
    265264         zetot(:,:,nksr+1:jpk) = 0._wp     ! below ~400m set to zero 
    266265         DO jk = nksr, 1, -1 
    267             zetot(:,:,jk) = zetot(:,:,jk+1) + qsr_hc(:,:,jk) * rau0_rcp 
     266            zetot(:,:,jk) = zetot(:,:,jk+1) + qsr_hc(:,:,jk) * rho0_rcp 
    268267         END DO 
    269268         CALL iom_put( 'qsr3d', zetot )   ! 3D distribution of shortwave Radiation 
  • NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA/trasbc.F90

    r12590 r12724  
    125125      !                             !==  Now sbc tracer content fields  ==! 
    126126      DO_2D_01_00 
    127          sbc_tsc(ji,jj,jp_tem) = r1_rau0_rcp * qns(ji,jj)   ! non solar heat flux 
    128          sbc_tsc(ji,jj,jp_sal) = r1_rau0     * sfx(ji,jj)   ! salt flux due to freezing/melting 
     127         sbc_tsc(ji,jj,jp_tem) = r1_rho0_rcp * qns(ji,jj)   ! non solar heat flux 
     128         sbc_tsc(ji,jj,jp_sal) = r1_rho0     * sfx(ji,jj)   ! salt flux due to freezing/melting 
    129129      END_2D 
    130130      IF( ln_linssh ) THEN                !* linear free surface 
    131131         DO_2D_01_00 
    132             sbc_tsc(ji,jj,jp_tem) = sbc_tsc(ji,jj,jp_tem) + r1_rau0 * emp(ji,jj) * pts(ji,jj,1,jp_tem,Kmm) 
    133             sbc_tsc(ji,jj,jp_sal) = sbc_tsc(ji,jj,jp_sal) + r1_rau0 * emp(ji,jj) * pts(ji,jj,1,jp_sal,Kmm) 
     132            sbc_tsc(ji,jj,jp_tem) = sbc_tsc(ji,jj,jp_tem) + r1_rho0 * emp(ji,jj) * pts(ji,jj,1,jp_tem,Kmm) 
     133            sbc_tsc(ji,jj,jp_sal) = sbc_tsc(ji,jj,jp_sal) + r1_rho0 * emp(ji,jj) * pts(ji,jj,1,jp_sal,Kmm) 
    134134         END_2D 
    135135         IF( iom_use('emp_x_sst') )   CALL iom_put( "emp_x_sst", emp (:,:) * pts(:,:,1,jp_tem,Kmm) ) 
  • NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA/trazdf.F90

    r12590 r12724  
    6767      ENDIF 
    6868      ! 
    69       IF( neuler == 0 .AND. kt == nit000 ) THEN   ;   r2dt =      rdt   ! at nit000, =   rdt (restarting with Euler time stepping) 
    70       ELSEIF( kt <= nit000 + 1           ) THEN   ;   r2dt = 2. * rdt   ! otherwise, = 2 rdt (leapfrog) 
    71       ENDIF 
    72       ! 
    7369      IF( l_trdtra )   THEN                  !* Save ta and sa trends 
    7470         ALLOCATE( ztrdt(jpi,jpj,jpk) , ztrds(jpi,jpj,jpk) ) 
     
    7874      ! 
    7975      !                                      !* compute lateral mixing trend and add it to the general trend 
    80       CALL tra_zdf_imp( kt, nit000, 'TRA', r2dt, Kbb, Kmm, Krhs, pts, Kaa, jpts ) 
     76      CALL tra_zdf_imp( kt, nit000, 'TRA', rDt, Kbb, Kmm, Krhs, pts, Kaa, jpts )  
    8177 
    8278!!gm WHY here !   and I don't like that ! 
     
    8985      IF( l_trdtra )   THEN                      ! save the vertical diffusive trends for further diagnostics 
    9086         DO jk = 1, jpkm1 
    91             ztrdt(:,:,jk) = ( ( pts(:,:,jk,jp_tem,Kaa)*e3t(:,:,jk,Kaa)    & 
    92                &              - pts(:,:,jk,jp_tem,Kbb)*e3t(:,:,jk,Kbb) )  & 
    93                &             / (e3t(:,:,jk,Kmm)*r2dt) ) - ztrdt(:,:,jk) 
    94             ztrds(:,:,jk) = ( ( pts(:,:,jk,jp_sal,Kaa)*e3t(:,:,jk,Kaa)    & 
    95                &              - pts(:,:,jk,jp_sal,Kbb)*e3t(:,:,jk,Kbb) ) & 
    96                &             / (e3t(:,:,jk,Kmm)*r2dt) ) - ztrds(:,:,jk) 
     87            ztrdt(:,:,jk) = (   (  pts(:,:,jk,jp_tem,Kaa)*e3t(:,:,jk,Kaa)     & 
     88               &                 - pts(:,:,jk,jp_tem,Kbb)*e3t(:,:,jk,Kbb)  )  & 
     89               &              / (  e3t(:,:,jk,Kmm)*rDt  )   )                 & 
     90               &          - ztrdt(:,:,jk) 
     91            ztrds(:,:,jk) = (   (  pts(:,:,jk,jp_sal,Kaa)*e3t(:,:,jk,Kaa)     & 
     92               &                 - pts(:,:,jk,jp_sal,Kbb)*e3t(:,:,jk,Kbb)  )  & 
     93               &             / (   e3t(:,:,jk,Kmm)*rDt  )   )                 & 
     94               &          - ztrds(:,:,jk) 
    9795         END DO 
    9896!!gm this should be moved in trdtra.F90 and done on all trends 
Note: See TracChangeset for help on using the changeset viewer.