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 12495 for NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src – NEMO

Ignore:
Timestamp:
2020-03-02T09:10:34+01:00 (4 years ago)
Author:
smasson
Message:

dev_r12472_ASINTER-05: update to trunk@12493, see #2156

Location:
NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src
Files:
147 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ABL/abl.F90

    r11305 r12495  
    1111   USE dom_oce, ONLY: e1t, e1u, e1v, e1f         ! scale factors for horizontal grid 
    1212   USE dom_oce, ONLY: e2t, e2u, e2v, e2f         !  
    13    USE dom_oce, ONLY: rdt                        ! oceanic time-step 
     13   USE dom_oce, ONLY: rn_Dt                      ! oceanic time-step 
    1414   USE sbc_oce, ONLY: ght_abl, ghw_abl, e3t_abl, e3w_abl, jpka   ! scale factors and altitudes of ABL grid points in the vertical  
    1515   
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ABL/ablmod.F90

    r12353 r12495  
    152152         DO jk = 3, jpkam1 
    153153            DO ji = 1, jpi   ! vector opt. 
    154                z_elem_a( ji,     jk              ) = - rdt_abl * Avt_abl( ji, jj, jk-1 ) / e3w_abl( jk-1 )   ! lower-diagonal 
    155                z_elem_c( ji,     jk              ) = - rdt_abl * Avt_abl( ji, jj, jk   ) / e3w_abl( jk   )   ! upper-diagonal        
     154               z_elem_a( ji,     jk              ) = - rDt_abl * Avt_abl( ji, jj, jk-1 ) / e3w_abl( jk-1 )   ! lower-diagonal 
     155               z_elem_c( ji,     jk              ) = - rDt_abl * Avt_abl( ji, jj, jk   ) / e3w_abl( jk   )   ! upper-diagonal        
    156156               z_elem_b( ji,     jk              ) = e3t_abl(jk) - z_elem_a( ji, jk ) - z_elem_c( ji, jk )   !       diagonal            
    157157            END DO 
     
    161161            ! Neumann at the bottom           
    162162            z_elem_a( ji,     2              ) = 0._wp 
    163             z_elem_c( ji,     2              ) = - rdt_abl * Avt_abl( ji, jj, 2   ) / e3w_abl( 2   )                                          
     163            z_elem_c( ji,     2              ) = - rDt_abl * Avt_abl( ji, jj, 2   ) / e3w_abl( 2   )                                          
    164164            ! Homogeneous Neumann at the top 
    165             z_elem_a( ji,     jpka           ) = - rdt_abl * Avt_abl( ji, jj, jpka ) / e3w_abl( jpka )  
     165            z_elem_a( ji,     jpka           ) = - rDt_abl * Avt_abl( ji, jj, jpka ) / e3w_abl( jpka )  
    166166            z_elem_c( ji,     jpka           ) = 0._wp 
    167167            z_elem_b( ji,     jpka           ) = e3t_abl( jpka ) - z_elem_a( ji,     jpka ) 
     
    184184                  zztmp2 = zztmp2 * pfrac_oce(ji,jj) + (1._wp - pfrac_oce(ji,jj)) * psen_ice(ji,jj) * ptm_su(ji,jj) 
    185185#endif               
    186                   z_elem_b( ji,     2                ) = e3t_abl( 2 ) - z_elem_c( ji, 2 ) + rdt_abl * zztmp1               
    187                   tq_abl  ( ji, jj, 2   , nt_a, jtra ) = e3t_abl( 2    ) * tq_abl  ( ji, jj, 2   , nt_n, jtra ) + rdt_abl * zztmp2                
     186                  z_elem_b( ji,     2                ) = e3t_abl( 2 ) - z_elem_c( ji, 2 ) + rDt_abl * zztmp1               
     187                  tq_abl  ( ji, jj, 2   , nt_a, jtra ) = e3t_abl( 2    ) * tq_abl  ( ji, jj, 2   , nt_n, jtra ) + rDt_abl * zztmp2                
    188188                  tq_abl  ( ji, jj, jpka, nt_a, jtra ) = e3t_abl( jpka ) * tq_abl  ( ji, jj, jpka, nt_n, jtra ) 
    189189               END DO  
     
    196196                  zztmp2 = zztmp2 * pfrac_oce(ji,jj) + (1._wp - pfrac_oce(ji,jj)) * pevp_ice(ji, jj) * pssq_ice(ji, jj)     
    197197#endif    
    198                   z_elem_b( ji,     2                ) = e3t_abl( 2 ) - z_elem_c( ji, 2 ) + rdt_abl * zztmp1 
    199                   tq_abl  ( ji, jj, 2   , nt_a, jtra ) = e3t_abl( 2    ) * tq_abl  ( ji, jj, 2   , nt_n, jtra ) + rdt_abl * zztmp2                
     198                  z_elem_b( ji,     2                ) = e3t_abl( 2 ) - z_elem_c( ji, 2 ) + rDt_abl * zztmp1 
     199                  tq_abl  ( ji, jj, 2   , nt_a, jtra ) = e3t_abl( 2    ) * tq_abl  ( ji, jj, 2   , nt_n, jtra ) + rDt_abl * zztmp2                
    200200                  tq_abl  ( ji, jj, jpka, nt_a, jtra ) = e3t_abl( jpka ) * tq_abl  ( ji, jj, jpka, nt_n, jtra ) 
    201201               END DO                                      
     
    242242         ! Advance u_abl & v_abl to time n+1 
    243243         DO_2D_11_11 
    244             zcff = ( fft_abl(ji,jj) * rdt_abl )*( fft_abl(ji,jj) * rdt_abl )  ! (f dt)**2 
     244            zcff = ( fft_abl(ji,jj) * rDt_abl )*( fft_abl(ji,jj) * rDt_abl )  ! (f dt)**2 
    245245    
    246246            u_abl( ji, jj, jk, nt_a ) = e3t_abl(jk) *(  & 
    247247               &        (1._wp-gamma_Cor*(1._wp-gamma_Cor)*zcff)*u_abl( ji, jj, jk, nt_n )    & 
    248                &                 +  rdt_abl * fft_abl(ji, jj) * v_abl ( ji , jj  , jk, nt_n ) )  & 
     248               &                 +  rDt_abl * fft_abl(ji, jj) * v_abl ( ji , jj  , jk, nt_n ) )  & 
    249249               &                               / (1._wp + gamma_Cor*gamma_Cor*zcff) 
    250250                
    251251            v_abl( ji, jj, jk, nt_a ) =  e3t_abl(jk) *(  & 
    252252               &        (1._wp-gamma_Cor*(1._wp-gamma_Cor)*zcff)*v_abl( ji, jj, jk, nt_n )   & 
    253                &                 -  rdt_abl * fft_abl(ji, jj) * u_abl ( ji   , jj, jk, nt_n )  ) & 
     253               &                 -  rDt_abl * fft_abl(ji, jj) * u_abl ( ji   , jj, jk, nt_n )  ) & 
    254254               &                                / (1._wp + gamma_Cor*gamma_Cor*zcff)                 
    255255         END_2D 
     
    264264               DO ji = 1, jpi  
    265265                  u_abl( ji, jj, jk, nt_a ) = u_abl( ji, jj, jk, nt_a )   & 
    266                      &                      - rdt_abl * e3t_abl(jk) * fft_abl(ji  , jj) * pgv_dta(ji  ,jj  ,jk) 
     266                     &                      - rDt_abl * e3t_abl(jk) * fft_abl(ji  , jj) * pgv_dta(ji  ,jj  ,jk) 
    267267                  v_abl( ji, jj, jk, nt_a ) = v_abl( ji, jj, jk, nt_a )   & 
    268                      &                      + rdt_abl * e3t_abl(jk) * fft_abl(ji, jj  ) * pgu_dta(ji  ,jj  ,jk) 
     268                     &                      + rDt_abl * e3t_abl(jk) * fft_abl(ji, jj  ) * pgu_dta(ji  ,jj  ,jk) 
    269269               END DO 
    270270            END DO 
     
    277277            DO jk = 1, jpka 
    278278               DO ji = 1, jpi  
    279                   u_abl( ji, jj, jk, nt_a ) = u_abl( ji, jj, jk, nt_a ) - rdt_abl * e3t_abl(jk) * pgu_dta(ji,jj,jk) 
    280                   v_abl( ji, jj, jk, nt_a ) = v_abl( ji, jj, jk, nt_a ) - rdt_abl * e3t_abl(jk) * pgv_dta(ji,jj,jk)   
     279                  u_abl( ji, jj, jk, nt_a ) = u_abl( ji, jj, jk, nt_a ) - rDt_abl * e3t_abl(jk) * pgu_dta(ji,jj,jk) 
     280                  v_abl( ji, jj, jk, nt_a ) = v_abl( ji, jj, jk, nt_a ) - rDt_abl * e3t_abl(jk) * pgv_dta(ji,jj,jk)   
    281281               ENDDO 
    282282            ENDDO 
     
    295295         DO jk = 3, jpkam1 
    296296            DO ji = 1, jpi   
    297                z_elem_a( ji,     jk ) = - rdt_abl * Avm_abl( ji, jj, jk-1 ) / e3w_abl( jk-1 )  ! lower-diagonal 
    298                z_elem_c( ji,     jk ) = - rdt_abl * Avm_abl( ji, jj, jk   ) / e3w_abl( jk   )  ! upper-diagonal                 
     297               z_elem_a( ji,     jk ) = - rDt_abl * Avm_abl( ji, jj, jk-1 ) / e3w_abl( jk-1 )  ! lower-diagonal 
     298               z_elem_c( ji,     jk ) = - rDt_abl * Avm_abl( ji, jj, jk   ) / e3w_abl( jk   )  ! upper-diagonal                 
    299299               z_elem_b( ji,     jk ) = e3t_abl(jk) - z_elem_a( ji, jk ) - z_elem_c( ji, jk )                             !       diagonal 
    300300            END DO 
     
    304304            !++ Surface boundary condition 
    305305            z_elem_a( ji,     2    ) = 0._wp 
    306             z_elem_c( ji,     2    ) = - rdt_abl * Avm_abl( ji, jj, 2   ) / e3w_abl( 2   )                                        
     306            z_elem_c( ji,     2    ) = - rDt_abl * Avm_abl( ji, jj, 2   ) / e3w_abl( 2   )                                        
    307307            ! 
    308308         zztmp1  = pcd_du(ji, jj) 
     
    313313         zztmp2 = zztmp2 * pfrac_oce(ji,jj) + (1._wp - pfrac_oce(ji,jj)) * pcd_du_ice(ji, jj) * zzice 
    314314#endif            
    315          z_elem_b( ji,     2       ) = e3t_abl( 2 ) - z_elem_c( ji, 2 ) + rdt_abl * zztmp1          
    316             u_abl( ji, jj,    2, nt_a ) =      u_abl( ji, jj,    2, nt_a ) + rdt_abl * zztmp2 
     315         z_elem_b( ji,     2       ) = e3t_abl( 2 ) - z_elem_c( ji, 2 ) + rDt_abl * zztmp1          
     316            u_abl( ji, jj,    2, nt_a ) =      u_abl( ji, jj,    2, nt_a ) + rDt_abl * zztmp2 
    317317          
    318318            !++ Top Neumann B.C. 
    319             !z_elem_a( ji,     jpka ) = - 0.5_wp * rdt_abl * ( Avm_abl( ji, jj, jpka )+ Avm_abl( ji+1, jj, jpka ) ) / e3w_abl( jpka )  
     319            !z_elem_a( ji,     jpka ) = - 0.5_wp * rDt_abl * ( Avm_abl( ji, jj, jpka )+ Avm_abl( ji+1, jj, jpka ) ) / e3w_abl( jpka )  
    320320            !z_elem_c( ji,     jpka ) = 0._wp 
    321321            !z_elem_b( ji,     jpka ) = e3t_abl( jpka ) - z_elem_a( ji,     jpka )                                                
     
    362362         DO jk = 3, jpkam1 
    363363            DO ji = 1, jpi    
    364                z_elem_a( ji,     jk ) = -rdt_abl * Avm_abl( ji, jj, jk-1 ) / e3w_abl( jk-1 )   ! lower-diagonal 
    365                z_elem_c( ji,     jk ) = -rdt_abl * Avm_abl( ji, jj, jk   ) / e3w_abl( jk   )   ! upper-diagonal               
     364               z_elem_a( ji,     jk ) = -rDt_abl * Avm_abl( ji, jj, jk-1 ) / e3w_abl( jk-1 )   ! lower-diagonal 
     365               z_elem_c( ji,     jk ) = -rDt_abl * Avm_abl( ji, jj, jk   ) / e3w_abl( jk   )   ! upper-diagonal               
    366366               z_elem_b( ji,     jk ) = e3t_abl(jk) - z_elem_a( ji, jk ) - z_elem_c( ji, jk )                              !       diagonal 
    367367            END DO 
     
    371371            !++ Surface boundary condition 
    372372            z_elem_a( ji,     2    ) = 0._wp 
    373             z_elem_c( ji,     2    ) = - rdt_abl * Avm_abl( ji, jj, 2   ) / e3w_abl( 2   )         
     373            z_elem_c( ji,     2    ) = - rDt_abl * Avm_abl( ji, jj, 2   ) / e3w_abl( 2   )         
    374374            ! 
    375375         zztmp1 = pcd_du(ji, jj) 
     
    380380         zztmp2 = zztmp2 * pfrac_oce(ji,jj) + (1._wp - pfrac_oce(ji,jj)) * pcd_du_ice(ji, jj) * zzice 
    381381#endif          
    382             z_elem_b( ji,     2       ) = e3t_abl( 2 ) - z_elem_c( ji, 2 ) + rdt_abl * zztmp1  
    383             v_abl( ji, jj,    2, nt_a ) =         v_abl( ji, jj, 2, nt_a ) + rdt_abl * zztmp2 
     382            z_elem_b( ji,     2       ) = e3t_abl( 2 ) - z_elem_c( ji, 2 ) + rDt_abl * zztmp1  
     383            v_abl( ji, jj,    2, nt_a ) =         v_abl( ji, jj, 2, nt_a ) + rDt_abl * zztmp2 
    384384            !++ Top Neumann B.C.             
    385             !z_elem_a( ji,     jpka ) = -rdt_abl * Avm_abl( ji, jj, jpka ) / e3w_abl( jpka )  
     385            !z_elem_a( ji,     jpka ) = -rDt_abl * Avm_abl( ji, jj, jpka ) / e3w_abl( jpka )  
    386386            !z_elem_c( ji,     jpka ) = 0._wp 
    387387            !z_elem_b( ji,     jpka ) = e3t_abl( jpka ) - z_elem_a( ji,     jpka )                                                
     
    436436               zcff2 = jp_alp3_dyn * zsig**3 + jp_alp2_dyn * zsig**2   & 
    437437                  &  + jp_alp1_dyn * zsig    + jp_alp0_dyn 
    438                zcff  = (1._wp-zmsk) + zmsk * zcff2 * rdt   ! zcff = 1 for masked points 
    439                                                            ! rdt = rdt_abl / nn_fsbc                           
     438               zcff  = (1._wp-zmsk) + zmsk * zcff2 * rn_Dt   ! zcff = 1 for masked points 
     439                                                             ! rn_Dt = rDt_abl / nn_fsbc                           
    440440               zcff  = zcff * rest_eq(ji,jj) 
    441441               z_cft( ji, jj, jk ) = zcff 
     
    460460            zcff2 = jp_alp3_tra * zsig**3 + jp_alp2_tra * zsig**2   & 
    461461               &  + jp_alp1_tra * zsig    + jp_alp0_tra 
    462             zcff  = (1._wp-zmsk) + zmsk * zcff2 * rdt   ! zcff = 1 for masked points 
    463                                                         ! rdt = rdt_abl / nn_fsbc                           
     462            zcff  = (1._wp-zmsk) + zmsk * zcff2 * rn_Dt   ! zcff = 1 for masked points 
     463                                                          ! rn_Dt = rDt_abl / nn_fsbc                           
    464464            !z_cft( ji, jj, jk ) = zcff 
    465465            tq_abl( ji, jj, jk, nt_a, jp_ta ) = (1._wp - zcff ) * tq_abl( ji, jj, jk, nt_a, jp_ta )   & 
     
    688688               zbuoy        = - Avt_abl( ji, jj, jk ) * zbn2( ji, jj, jk )  
    689689                
    690                z_elem_a( ji,     jk )   = - 0.5_wp * rdt_abl * rn_Sch * ( Avm_abl( ji, jj, jk   )+Avm_abl( ji, jj, jk-1 ) ) / e3t_abl( jk   ) ! lower-diagonal 
    691                z_elem_c( ji,     jk )   = - 0.5_wp * rdt_abl * rn_Sch * ( Avm_abl( ji, jj, jk   )+Avm_abl( ji, jj, jk+1 ) ) / e3t_abl( jk+1 ) ! upper-diagonal           
     690               z_elem_a( ji,     jk )   = - 0.5_wp * rDt_abl * rn_Sch * ( Avm_abl( ji, jj, jk   )+Avm_abl( ji, jj, jk-1 ) ) / e3t_abl( jk   ) ! lower-diagonal 
     691               z_elem_c( ji,     jk )   = - 0.5_wp * rDt_abl * rn_Sch * ( Avm_abl( ji, jj, jk   )+Avm_abl( ji, jj, jk+1 ) ) / e3t_abl( jk+1 ) ! upper-diagonal           
    692692               IF( (zbuoy + zshear) .gt. 0.) THEN    ! Patankar trick to avoid negative values of TKE 
    693693                  z_elem_b( ji,     jk )   = e3w_abl(jk) - z_elem_a( ji, jk ) - z_elem_c( ji, jk )   & 
    694                      &                     + e3w_abl(jk) * rdt_abl * rn_Ceps * sqrt(tke_abl( ji, jj, jk, nt_n )) / mxl_abl(ji,jj,jk)     ! diagonal        
    695                   tke_abl( ji, jj, jk, nt_a )  = e3w_abl(jk) * ( tke_abl( ji, jj, jk, nt_n ) + rdt_abl * ( zbuoy + zshear ) )             ! right-hand-side 
     694                     &                     + e3w_abl(jk) * rDt_abl * rn_Ceps * sqrt(tke_abl( ji, jj, jk, nt_n )) / mxl_abl(ji,jj,jk)     ! diagonal        
     695                  tke_abl( ji, jj, jk, nt_a )  = e3w_abl(jk) * ( tke_abl( ji, jj, jk, nt_n ) + rDt_abl * ( zbuoy + zshear ) )             ! right-hand-side 
    696696               ELSE 
    697697                  z_elem_b( ji,     jk )   = e3w_abl(jk) - z_elem_a( ji, jk ) - z_elem_c( ji, jk )   & 
    698                      &                     + e3w_abl(jk) * rdt_abl * rn_Ceps * sqrt(tke_abl( ji, jj, jk, nt_n )) / mxl_abl(ji,jj,jk)   &  ! diagonal     
    699                      &                     - e3w_abl(jk) * rdt_abl * zbuoy    
    700                   tke_abl( ji, jj, jk, nt_a )  = e3w_abl(jk) * ( tke_abl( ji, jj, jk, nt_n ) + rdt_abl *  zshear )             ! right-hand-side                      
     698                     &                     + e3w_abl(jk) * rDt_abl * rn_Ceps * sqrt(tke_abl( ji, jj, jk, nt_n )) / mxl_abl(ji,jj,jk)   &  ! diagonal     
     699                     &                     - e3w_abl(jk) * rDt_abl * zbuoy    
     700                  tke_abl( ji, jj, jk, nt_a )  = e3w_abl(jk) * ( tke_abl( ji, jj, jk, nt_n ) + rDt_abl *  zshear )             ! right-hand-side                      
    701701               END IF 
    702702            END DO 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ABL/par_abl.F90

    r11858 r12495  
    7676   REAL(wp), PUBLIC, PARAMETER ::   gamma_Cor  = 0.55_wp 
    7777   ! ABL timestep 
    78    REAL(wp), PUBLIC            :: rdt_abl 
     78   REAL(wp), PUBLIC            :: rDt_abl 
    7979 
    8080   !!--------------------------------------------------------------------- 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ABL/sbcabl.F90

    r12353 r12495  
    202202 
    203203      ! ABL timestep 
    204       rdt_abl = nn_fsbc * rdt 
     204      rDt_abl = nn_fsbc * rn_Dt 
    205205 
    206206      ! Check parameters for dynamics 
    207207      zcff  = ( jp_alp3_dyn * jp_bmin**3 + jp_alp2_dyn * jp_bmin**2   & 
    208          &    + jp_alp1_dyn * jp_bmin    + jp_alp0_dyn ) * rdt_abl 
     208         &    + jp_alp1_dyn * jp_bmin    + jp_alp0_dyn ) * rDt_abl 
    209209      zcff1 = ( jp_alp3_dyn * jp_bmax**3 + jp_alp2_dyn * jp_bmax**2   & 
    210          &    + jp_alp1_dyn * jp_bmax    + jp_alp0_dyn ) * rdt_abl 
     210         &    + jp_alp1_dyn * jp_bmax    + jp_alp0_dyn ) * rDt_abl 
    211211      IF(lwp) THEN 
    212212         IF(nn_dyn_restore > 0) THEN 
     
    225225      ! Check parameters for active tracers 
    226226      zcff  = ( jp_alp3_tra * jp_bmin**3 + jp_alp2_tra * jp_bmin**2   & 
    227          &    + jp_alp1_tra * jp_bmin    + jp_alp0_tra ) * rdt_abl 
     227         &    + jp_alp1_tra * jp_bmin    + jp_alp0_tra ) * rDt_abl 
    228228      zcff1 = ( jp_alp3_tra * jp_bmax**3 + jp_alp2_tra * jp_bmax**2   & 
    229          &    + jp_alp1_tra * jp_bmax    + jp_alp0_tra ) * rdt_abl 
     229         &    + jp_alp1_tra * jp_bmax    + jp_alp0_tra ) * rDt_abl 
    230230      IF(lwp) THEN 
    231231         WRITE(numout,*) ' ABL Minimum value for tracers restoring = ',zcff 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ICE/ice.F90

    r11627 r12495  
    150150   REAL(wp), PUBLIC ::   rn_ecc           !: eccentricity of the elliptical yield curve 
    151151   INTEGER , PUBLIC ::   nn_nevp          !: number of iterations for subcycling 
    152    REAL(wp), PUBLIC ::   rn_relast        !: ratio => telast/rdt_ice (1/3 or 1/9 depending on nb of subcycling nevp)  
     152   REAL(wp), PUBLIC ::   rn_relast        !: ratio => telast/rDt_ice (1/3 or 1/9 depending on nb of subcycling nevp)  
    153153   ! 
    154154   !                                     !!** ice-advection namelist (namdyn_adv) ** 
     
    207207   !                                     !!** some other parameters  
    208208   INTEGER , PUBLIC ::   kt_ice           !: iteration number 
    209    REAL(wp), PUBLIC ::   rdt_ice          !: ice time step 
    210    REAL(wp), PUBLIC ::   r1_rdtice        !: = 1. / rdt_ice 
     209   REAL(wp), PUBLIC ::   rDt_ice          !: ice time step 
     210   REAL(wp), PUBLIC ::   r1_Dt_ice        !: = 1. / rDt_ice 
    211211   REAL(wp), PUBLIC ::   r1_nlay_i        !: 1 / nlay_i 
    212212   REAL(wp), PUBLIC ::   r1_nlay_s        !: 1 / nlay_s  
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ICE/icecor.F90

    r12377 r12495  
    8686      IF ( nn_icesal == 2 ) THEN    !  salinity must stay in bounds [Simin,Simax]        ! 
    8787         !                          !----------------------------------------------------- 
    88          zzc = rhoi * r1_rdtice 
     88         zzc = rhoi * r1_Dt_ice 
    8989         DO jl = 1, jpl 
    9090            DO_2D_11_11 
     
    123123         ! 
    124124         IF( ln_icediachk .OR. iom_use('hfxdhc') ) THEN 
    125             diag_heat(:,:) = - SUM(SUM( e_i (:,:,1:nlay_i,:) - e_i_b (:,:,1:nlay_i,:), dim=4 ), dim=3 ) * r1_rdtice &      ! W.m-2 
    126                &             - SUM(SUM( e_s (:,:,1:nlay_s,:) - e_s_b (:,:,1:nlay_s,:), dim=4 ), dim=3 ) * r1_rdtice 
    127             diag_sice(:,:) =   SUM(     sv_i(:,:,:)          - sv_i_b(:,:,:)                  , dim=3 ) * r1_rdtice * rhoi 
    128             diag_vice(:,:) =   SUM(     v_i (:,:,:)          - v_i_b (:,:,:)                  , dim=3 ) * r1_rdtice * rhoi 
    129             diag_vsnw(:,:) =   SUM(     v_s (:,:,:)          - v_s_b (:,:,:)                  , dim=3 ) * r1_rdtice * rhos 
     125            diag_heat(:,:) = - SUM(SUM( e_i (:,:,1:nlay_i,:) - e_i_b (:,:,1:nlay_i,:), dim=4 ), dim=3 ) * r1_Dt_ice &      ! W.m-2 
     126               &             - SUM(SUM( e_s (:,:,1:nlay_s,:) - e_s_b (:,:,1:nlay_s,:), dim=4 ), dim=3 ) * r1_Dt_ice 
     127            diag_sice(:,:) =   SUM(     sv_i(:,:,:)          - sv_i_b(:,:,:)                  , dim=3 ) * r1_Dt_ice * rhoi 
     128            diag_vice(:,:) =   SUM(     v_i (:,:,:)          - v_i_b (:,:,:)                  , dim=3 ) * r1_Dt_ice * rhoi 
     129            diag_vsnw(:,:) =   SUM(     v_s (:,:,:)          - v_s_b (:,:,:)                  , dim=3 ) * r1_Dt_ice * rhos 
    130130         ENDIF 
    131131         !                       ! concentration tendency (dynamics) 
    132132         IF( iom_use('afxdyn') .OR. iom_use('afxthd') .OR. iom_use('afxtot') ) THEN  
    133             zafx(:,:) = SUM( a_i(:,:,:) - a_i_b(:,:,:), dim=3 ) * r1_rdtice  
     133            zafx(:,:) = SUM( a_i(:,:,:) - a_i_b(:,:,:), dim=3 ) * r1_Dt_ice  
    134134            CALL iom_put( 'afxdyn' , zafx ) 
    135135         ENDIF 
     
    137137      CASE( 2 )                        !--- thermo trend diagnostics & ice aging 
    138138         ! 
    139          oa_i(:,:,:) = oa_i(:,:,:) + a_i(:,:,:) * rdt_ice   ! ice natural aging incrementation 
     139         oa_i(:,:,:) = oa_i(:,:,:) + a_i(:,:,:) * rDt_ice   ! ice natural aging incrementation 
    140140         ! 
    141141         IF( ln_icediachk .OR. iom_use('hfxdhc') ) THEN 
    142142            diag_heat(:,:) = diag_heat(:,:) & 
    143                &             - SUM(SUM( e_i (:,:,1:nlay_i,:) - e_i_b (:,:,1:nlay_i,:), dim=4 ), dim=3 ) * r1_rdtice & 
    144                &             - SUM(SUM( e_s (:,:,1:nlay_s,:) - e_s_b (:,:,1:nlay_s,:), dim=4 ), dim=3 ) * r1_rdtice 
     143               &             - SUM(SUM( e_i (:,:,1:nlay_i,:) - e_i_b (:,:,1:nlay_i,:), dim=4 ), dim=3 ) * r1_Dt_ice & 
     144               &             - SUM(SUM( e_s (:,:,1:nlay_s,:) - e_s_b (:,:,1:nlay_s,:), dim=4 ), dim=3 ) * r1_Dt_ice 
    145145            diag_sice(:,:) = diag_sice(:,:) & 
    146                &             + SUM(     sv_i(:,:,:)          - sv_i_b(:,:,:)                  , dim=3 ) * r1_rdtice * rhoi 
     146               &             + SUM(     sv_i(:,:,:)          - sv_i_b(:,:,:)                  , dim=3 ) * r1_Dt_ice * rhoi 
    147147            diag_vice(:,:) = diag_vice(:,:) & 
    148                &             + SUM(     v_i (:,:,:)          - v_i_b (:,:,:)                  , dim=3 ) * r1_rdtice * rhoi 
     148               &             + SUM(     v_i (:,:,:)          - v_i_b (:,:,:)                  , dim=3 ) * r1_Dt_ice * rhoi 
    149149            diag_vsnw(:,:) = diag_vsnw(:,:) & 
    150                &             + SUM(     v_s (:,:,:)          - v_s_b (:,:,:)                  , dim=3 ) * r1_rdtice * rhos 
     150               &             + SUM(     v_s (:,:,:)          - v_s_b (:,:,:)                  , dim=3 ) * r1_Dt_ice * rhos 
    151151            CALL iom_put ( 'hfxdhc' , diag_heat )  
    152152         ENDIF 
    153153         !                       ! concentration tendency (total + thermo) 
    154154         IF( iom_use('afxdyn') .OR. iom_use('afxthd') .OR. iom_use('afxtot') ) THEN  
    155             zafx(:,:) = zafx(:,:) + SUM( a_i(:,:,:) - a_i_b(:,:,:), dim=3 ) * r1_rdtice 
    156             CALL iom_put( 'afxthd' , SUM( a_i(:,:,:) - a_i_b(:,:,:), dim=3 ) * r1_rdtice ) 
     155            zafx(:,:) = zafx(:,:) + SUM( a_i(:,:,:) - a_i_b(:,:,:), dim=3 ) * r1_Dt_ice 
     156            CALL iom_put( 'afxthd' , SUM( a_i(:,:,:) - a_i_b(:,:,:), dim=3 ) * r1_Dt_ice ) 
    157157            CALL iom_put( 'afxtot' , zafx ) 
    158158         ENDIF 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ICE/icectl.F90

    r12377 r12495  
    104104 
    105105         ! -- mass diag -- ! 
    106          zdiag_mass = ( glob_sum( 'icectl', SUM( v_i * rhoi + v_s * rhos, dim=3 ) * e1e2t ) - pdiag_v ) * r1_rdtice       & 
     106         zdiag_mass = ( glob_sum( 'icectl', SUM( v_i * rhoi + v_s * rhos, dim=3 ) * e1e2t ) - pdiag_v ) * r1_Dt_ice       & 
    107107            &         + glob_sum( 'icectl', ( wfx_bog + wfx_bom + wfx_sum + wfx_sni + wfx_opw + wfx_res + wfx_dyn +       & 
    108108            &                                 wfx_lam + wfx_pnd + wfx_snw_sni + wfx_snw_sum + wfx_snw_dyn + wfx_snw_sub + & 
     
    111111         ! 
    112112         ! -- salt diag -- ! 
    113          zdiag_salt = ( glob_sum( 'icectl', SUM( sv_i * rhoi , dim=3 ) * e1e2t ) - pdiag_s ) * r1_rdtice  & 
     113         zdiag_salt = ( glob_sum( 'icectl', SUM( sv_i * rhoi , dim=3 ) * e1e2t ) - pdiag_s ) * r1_Dt_ice  & 
    114114            &         + glob_sum( 'icectl', ( sfx_bri + sfx_bog + sfx_bom + sfx_sum + sfx_sni +           & 
    115115            &                                 sfx_opw + sfx_res + sfx_dyn + sfx_sub + sfx_lam ) * e1e2t ) & 
     
    118118         ! -- heat diag -- ! 
    119119         zdiag_heat = ( glob_sum( 'icectl', ( SUM(SUM(e_i, dim=4), dim=3) + SUM(SUM(e_s, dim=4), dim=3) ) * e1e2t ) - pdiag_t & 
    120             &         ) * r1_rdtice                                                                                           & 
     120            &         ) * r1_Dt_ice                                                                                           & 
    121121            &         + glob_sum( 'icectl', (  hfx_sum + hfx_bom + hfx_bog + hfx_dif + hfx_opw + hfx_snw                      & 
    122122            &                                - hfx_thd - hfx_dyn - hfx_res - hfx_sub - hfx_spr ) * e1e2t )                    & 
     
    141141            ! check conservation issues 
    142142            IF( ABS(zdiag_mass) > zchk_m * rn_icechk_glo * zarea ) & 
    143                &                   WRITE(numout,*)   cd_routine,' : violation mass cons. [kg] = ',zdiag_mass * rdt_ice 
     143               &                   WRITE(numout,*)   cd_routine,' : violation mass cons. [kg] = ',zdiag_mass * rDt_ice 
    144144            IF( ABS(zdiag_salt) > zchk_s * rn_icechk_glo * zarea ) & 
    145                &                   WRITE(numout,*)   cd_routine,' : violation salt cons. [g]  = ',zdiag_salt * rdt_ice 
     145               &                   WRITE(numout,*)   cd_routine,' : violation salt cons. [g]  = ',zdiag_salt * rDt_ice 
    146146            IF( ABS(zdiag_heat) > zchk_t * rn_icechk_glo * zarea ) & 
    147                &                   WRITE(numout,*)   cd_routine,' : violation heat cons. [J]  = ',zdiag_heat * rdt_ice 
     147               &                   WRITE(numout,*)   cd_routine,' : violation heat cons. [J]  = ',zdiag_heat * rDt_ice 
    148148            ! check negative values 
    149149            IF( zdiag_vmin  < 0. ) WRITE(numout,*)   cd_routine,' : violation v_i < 0         = ',zdiag_vmin 
     
    160160            !    it does not mean UM is not conservative (it is checked with above prints) => update (09/2019): same for Prather now 
    161161            !IF( ln_adv_Pra .AND. ABS(zvtrp) > zchk_m * rn_icechk_glo * zarea .AND. cd_routine == 'icedyn_adv' ) & 
    162             !   &                   WRITE(numout,*)   cd_routine,' : violation adv scheme [kg] = ',zvtrp * rdt_ice 
     162            !   &                   WRITE(numout,*)   cd_routine,' : violation adv scheme [kg] = ',zvtrp * rDt_ice 
    163163         ENDIF 
    164164         ! 
     
    201201      IF( lwp ) THEN 
    202202         IF( ABS(zdiag_mass) > zchk_m * rn_icechk_glo * zarea ) & 
    203             &                   WRITE(numout,*) cd_routine,' : violation mass cons. [kg] = ',zdiag_mass * rdt_ice 
     203            &                   WRITE(numout,*) cd_routine,' : violation mass cons. [kg] = ',zdiag_mass * rDt_ice 
    204204         IF( ABS(zdiag_salt) > zchk_s * rn_icechk_glo * zarea ) & 
    205             &                   WRITE(numout,*) cd_routine,' : violation salt cons. [g]  = ',zdiag_salt * rdt_ice 
    206          !!IF( ABS(zdiag_heat) > zchk_t * rn_icechk_glo * zarea ) WRITE(numout,*) cd_routine,' : violation heat cons. [J]  = ',zdiag_heat * rdt_ice 
     205            &                   WRITE(numout,*) cd_routine,' : violation salt cons. [g]  = ',zdiag_salt * rDt_ice 
     206         !!IF( ABS(zdiag_heat) > zchk_t * rn_icechk_glo * zarea ) WRITE(numout,*) cd_routine,' : violation heat cons. [J]  = ',zdiag_heat * rDt_ice 
    207207      ENDIF 
    208208      ! 
     
    250250 
    251251         ! -- mass diag -- ! 
    252          zdiag_mass =   ( SUM( v_i * rhoi + v_s * rhos, dim=3 ) - pdiag_v ) * r1_rdtice                             & 
     252         zdiag_mass =   ( SUM( v_i * rhoi + v_s * rhos, dim=3 ) - pdiag_v ) * r1_Dt_ice                             & 
    253253            &         + ( wfx_bog + wfx_bom + wfx_sum + wfx_sni + wfx_opw + wfx_res + wfx_dyn + wfx_lam + wfx_pnd + & 
    254254            &             wfx_snw_sni + wfx_snw_sum + wfx_snw_dyn + wfx_snw_sub + wfx_ice_sub + wfx_spr )           & 
     
    257257         ! 
    258258         ! -- salt diag -- ! 
    259          zdiag_salt =   ( SUM( sv_i * rhoi , dim=3 ) - pdiag_s ) * r1_rdtice                                                  & 
     259         zdiag_salt =   ( SUM( sv_i * rhoi , dim=3 ) - pdiag_s ) * r1_Dt_ice                                                  & 
    260260            &         + ( sfx_bri + sfx_bog + sfx_bom + sfx_sum + sfx_sni + sfx_opw + sfx_res + sfx_dyn + sfx_sub + sfx_lam ) & 
    261261            &         - pdiag_fs 
     
    263263         ! 
    264264         ! -- heat diag -- ! 
    265          zdiag_heat =   ( SUM( SUM( e_i, dim=4 ), dim=3 ) + SUM( SUM( e_s, dim=4 ), dim=3 ) - pdiag_t ) * r1_rdtice & 
     265         zdiag_heat =   ( SUM( SUM( e_i, dim=4 ), dim=3 ) + SUM( SUM( e_s, dim=4 ), dim=3 ) - pdiag_t ) * r1_Dt_ice & 
    266266            &         + (  hfx_sum + hfx_bom + hfx_bog + hfx_dif + hfx_opw + hfx_snw                                &  
    267267            &            - hfx_thd - hfx_dyn - hfx_res - hfx_sub - hfx_spr )                                        & 
     
    455455      DO jl = 1, jpl 
    456456         DO_2D_11_11 
    457             IF ( ( ( ABS( o_i(ji,jj,jl) ) > rdt_ice ) .OR. & 
     457            IF ( ( ( ABS( o_i(ji,jj,jl) ) > rDt_ice ) .OR. & 
    458458                   ( ABS( o_i(ji,jj,jl) ) < 0._wp) ) .AND. & 
    459459                          ( a_i(ji,jj,jl) > 0._wp ) ) THEN 
     
    651651               WRITE(numout,*) ' hfx_res      : ', hfx_res(ji,jj) 
    652652               WRITE(numout,*) ' qsb_ice_bot  : ', qsb_ice_bot(ji,jj)  
    653                WRITE(numout,*) ' qlead        : ', qlead(ji,jj) * r1_rdtice 
     653               WRITE(numout,*) ' qlead        : ', qlead(ji,jj) * r1_Dt_ice 
    654654               WRITE(numout,*) 
    655655               WRITE(numout,*) ' - Salt fluxes at bottom interface ***' 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ICE/icedia.F90

    r12377 r12495  
    109109      ! ---------------------------! 
    110110      ! they must be kept outside an IF(iom_use) because of the call to dia_rst below 
    111       z_frc_volbot = r1_rau0 * glob_sum( 'icedia', -( wfx_ice(:,:) + wfx_snw(:,:) + wfx_err_sub(:,:) ) * e1e2t(:,:) ) * 1.e-9   ! freshwater flux ice/snow-ocean  
    112       z_frc_voltop = r1_rau0 * glob_sum( 'icedia', -( wfx_sub(:,:) + wfx_spr(:,:) )                    * e1e2t(:,:) ) * 1.e-9   ! freshwater flux ice/snow-atm 
    113       z_frc_sal    = r1_rau0 * glob_sum( 'icedia', -      sfx(:,:)                                     * e1e2t(:,:) ) * 1.e-9   ! salt fluxes ice/snow-ocean 
     111      z_frc_volbot = r1_rho0 * glob_sum( 'icedia', -( wfx_ice(:,:) + wfx_snw(:,:) + wfx_err_sub(:,:) ) * e1e2t(:,:) ) * 1.e-9   ! freshwater flux ice/snow-ocean  
     112      z_frc_voltop = r1_rho0 * glob_sum( 'icedia', -( wfx_sub(:,:) + wfx_spr(:,:) )                    * e1e2t(:,:) ) * 1.e-9   ! freshwater flux ice/snow-atm 
     113      z_frc_sal    = r1_rho0 * glob_sum( 'icedia', -      sfx(:,:)                                     * e1e2t(:,:) ) * 1.e-9   ! salt fluxes ice/snow-ocean 
    114114      z_frc_tembot =           glob_sum( 'icedia',  qt_oce_ai(:,:)                                     * e1e2t(:,:) ) * 1.e-20  ! heat on top of ocean (and below ice) 
    115115      z_frc_temtop =           glob_sum( 'icedia',  qt_atm_oi(:,:)                                     * e1e2t(:,:) ) * 1.e-20  ! heat on top of ice-coean 
    116116      ! 
    117       frc_voltop  = frc_voltop  + z_frc_voltop  * rdt_ice ! km3 
    118       frc_volbot  = frc_volbot  + z_frc_volbot  * rdt_ice ! km3 
    119       frc_sal     = frc_sal     + z_frc_sal     * rdt_ice ! km3*pss 
    120       frc_temtop  = frc_temtop  + z_frc_temtop  * rdt_ice ! 1.e20 J 
    121       frc_tembot  = frc_tembot  + z_frc_tembot  * rdt_ice ! 1.e20 J 
     117      frc_voltop  = frc_voltop  + z_frc_voltop  * rDt_ice ! km3 
     118      frc_volbot  = frc_volbot  + z_frc_volbot  * rDt_ice ! km3 
     119      frc_sal     = frc_sal     + z_frc_sal     * rDt_ice ! km3*pss 
     120      frc_temtop  = frc_temtop  + z_frc_temtop  * rDt_ice ! 1.e20 J 
     121      frc_tembot  = frc_tembot  + z_frc_tembot  * rDt_ice ! 1.e20 J 
    122122 
    123123      CALL iom_put( 'ibgfrcvoltop' , frc_voltop )   ! vol  forcing ice/snw-atm          (km3 equivalent ocean water)  
     
    128128 
    129129      IF(  iom_use('ibgfrchfxtop') .OR. iom_use('ibgfrchfxbot') ) THEN 
    130          CALL iom_put( 'ibgfrchfxtop' , frc_temtop * z1_e1e2 * 1.e-20 * kt*rdt ) ! heat on top of ice/snw/ocean      (W/m2) 
    131          CALL iom_put( 'ibgfrchfxbot' , frc_tembot * z1_e1e2 * 1.e-20 * kt*rdt ) ! heat on top of ocean(below ice)   (W/m2)  
     130         CALL iom_put( 'ibgfrchfxtop' , frc_temtop * z1_e1e2 * 1.e-20 * kt*rn_Dt ) ! heat on top of ice/snw/ocean      (W/m2) 
     131         CALL iom_put( 'ibgfrchfxbot' , frc_tembot * z1_e1e2 * 1.e-20 * kt*rn_Dt ) ! heat on top of ocean(below ice)   (W/m2)  
    132132      ENDIF 
    133133       
     
    137137      IF(  iom_use('ibgvolume') .OR. iom_use('ibgsaltco') .OR. iom_use('ibgheatco') .OR. iom_use('ibgheatfx') ) THEN 
    138138             
    139          zdiff_vol = r1_rau0 * glob_sum( 'icedia', ( rhoi*vt_i(:,:) + rhos*vt_s(:,:) - vol_loc_ini(:,:) ) * e1e2t(:,:) ) * 1.e-9   ! freshwater trend (km3)  
    140          zdiff_sal = r1_rau0 * glob_sum( 'icedia', ( rhoi*st_i(:,:)                  - sal_loc_ini(:,:) ) * e1e2t(:,:) ) * 1.e-9   ! salt content trend (km3*pss) 
     139         zdiff_vol = r1_rho0 * glob_sum( 'icedia', ( rhoi*vt_i(:,:) + rhos*vt_s(:,:) - vol_loc_ini(:,:) ) * e1e2t(:,:) ) * 1.e-9   ! freshwater trend (km3)  
     140         zdiff_sal = r1_rho0 * glob_sum( 'icedia', ( rhoi*st_i(:,:)                  - sal_loc_ini(:,:) ) * e1e2t(:,:) ) * 1.e-9   ! salt content trend (km3*pss) 
    141141         zdiff_tem =           glob_sum( 'icedia', ( et_i(:,:) + et_s(:,:)           - tem_loc_ini(:,:) ) * e1e2t(:,:) ) * 1.e-20  ! heat content trend (1.e20 J) 
    142142         !                               + SUM( qevap_ice * a_i_b, dim=3 )       !! clem: I think this term should not be there (but needs a check) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ICE/icedyn_adv.F90

    r12377 r12495  
    9393      ! diagnostics 
    9494      !------------ 
    95       diag_trp_ei(:,:) = SUM(SUM( e_i (:,:,1:nlay_i,:) - e_i_b (:,:,1:nlay_i,:), dim=4 ), dim=3 ) * r1_rdtice 
    96       diag_trp_es(:,:) = SUM(SUM( e_s (:,:,1:nlay_s,:) - e_s_b (:,:,1:nlay_s,:), dim=4 ), dim=3 ) * r1_rdtice 
    97       diag_trp_sv(:,:) = SUM(     sv_i(:,:,:)          - sv_i_b(:,:,:)                  , dim=3 ) * r1_rdtice 
    98       diag_trp_vi(:,:) = SUM(     v_i (:,:,:)          - v_i_b (:,:,:)                  , dim=3 ) * r1_rdtice 
    99       diag_trp_vs(:,:) = SUM(     v_s (:,:,:)          - v_s_b (:,:,:)                  , dim=3 ) * r1_rdtice 
     95      diag_trp_ei(:,:) = SUM(SUM( e_i (:,:,1:nlay_i,:) - e_i_b (:,:,1:nlay_i,:), dim=4 ), dim=3 ) * r1_Dt_ice 
     96      diag_trp_es(:,:) = SUM(SUM( e_s (:,:,1:nlay_s,:) - e_s_b (:,:,1:nlay_s,:), dim=4 ), dim=3 ) * r1_Dt_ice 
     97      diag_trp_sv(:,:) = SUM(     sv_i(:,:,:)          - sv_i_b(:,:,:)                  , dim=3 ) * r1_Dt_ice 
     98      diag_trp_vi(:,:) = SUM(     v_i (:,:,:)          - v_i_b (:,:,:)                  , dim=3 ) * r1_Dt_ice 
     99      diag_trp_vs(:,:) = SUM(     v_s (:,:,:)          - v_s_b (:,:,:)                  , dim=3 ) * r1_Dt_ice 
    100100      IF( iom_use('icemtrp') )   CALL iom_put( 'icemtrp' ,  diag_trp_vi * rhoi          )   ! ice mass transport 
    101101      IF( iom_use('snwmtrp') )   CALL iom_put( 'snwmtrp' ,  diag_trp_vs * rhos          )   ! snw mass transport 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ICE/icedyn_adv_pra.F90

    r12377 r12495  
    122122      !        Note: the advection split is applied at the next time-step in order to avoid blocking global comm. 
    123123      !              this should not affect too much the stability 
    124       zcflnow(1) =                  MAXVAL( ABS( pu_ice(:,:) ) * rdt_ice * r1_e1u(:,:) ) 
    125       zcflnow(1) = MAX( zcflnow(1), MAXVAL( ABS( pv_ice(:,:) ) * rdt_ice * r1_e2v(:,:) ) ) 
     124      zcflnow(1) =                  MAXVAL( ABS( pu_ice(:,:) ) * rDt_ice * r1_e1u(:,:) ) 
     125      zcflnow(1) = MAX( zcflnow(1), MAXVAL( ABS( pv_ice(:,:) ) * rDt_ice * r1_e2v(:,:) ) ) 
    126126       
    127127      ! non-blocking global communication send zcflnow and receive zcflprv 
     
    131131      ELSE                         ;   icycle = 1 
    132132      ENDIF 
    133       zdt = rdt_ice / REAL(icycle) 
     133      zdt = rDt_ice / REAL(icycle) 
    134134       
    135135      ! --- transport --- ! 
     
    687687            IF ( pv_i(ji,jj,jl) > 0._wp ) THEN 
    688688               ! 
    689                zvs_excess = MAX( 0._wp, pv_s(ji,jj,jl) - pv_i(ji,jj,jl) * (rau0-rhoi) * r1_rhos ) 
     689               zvs_excess = MAX( 0._wp, pv_s(ji,jj,jl) - pv_i(ji,jj,jl) * (rho0-rhoi) * r1_rhos ) 
    690690               ! 
    691691               IF( zvs_excess > 0._wp ) THEN   ! snow-ice interface deplets below the ocean surface 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ICE/icedyn_adv_umx.F90

    r12377 r12495  
    128128      !        Note: the advection split is applied at the next time-step in order to avoid blocking global comm. 
    129129      !              this should not affect too much the stability 
    130       zcflnow(1) =                  MAXVAL( ABS( pu_ice(:,:) ) * rdt_ice * r1_e1u(:,:) ) 
    131       zcflnow(1) = MAX( zcflnow(1), MAXVAL( ABS( pv_ice(:,:) ) * rdt_ice * r1_e2v(:,:) ) ) 
     130      zcflnow(1) =                  MAXVAL( ABS( pu_ice(:,:) ) * rDt_ice * r1_e1u(:,:) ) 
     131      zcflnow(1) = MAX( zcflnow(1), MAXVAL( ABS( pv_ice(:,:) ) * rDt_ice * r1_e2v(:,:) ) ) 
    132132       
    133133      ! non-blocking global communication send zcflnow and receive zcflprv 
     
    137137      ELSE                         ;   icycle = 1 
    138138      ENDIF 
    139       zdt = rdt_ice / REAL(icycle) 
     139      zdt = rDt_ice / REAL(icycle) 
    140140 
    141141      ! --- transport --- ! 
     
    15051505            IF ( pv_i(ji,jj,jl) > 0._wp ) THEN 
    15061506               ! 
    1507                zvs_excess = MAX( 0._wp, pv_s(ji,jj,jl) - pv_i(ji,jj,jl) * (rau0-rhoi) * r1_rhos ) 
     1507               zvs_excess = MAX( 0._wp, pv_s(ji,jj,jl) - pv_i(ji,jj,jl) * (rho0-rhoi) * r1_rhos ) 
    15081508               ! 
    15091509               IF( zvs_excess > 0._wp ) THEN   ! snow-ice interface deplets below the ocean surface 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ICE/icedyn_rdgrft.F90

    r12377 r12495  
    250250               ELSE 
    251251                  iterate_ridging  = 1 
    252                   zdivu      (ji) = zfac * r1_rdtice 
     252                  zdivu      (ji) = zfac * r1_Dt_ice 
    253253                  closing_net(ji) = MAX( 0._wp, -zdivu(ji) ) 
    254254                  opning     (ji) = MAX( 0._wp,  zdivu(ji) ) 
     
    455455      DO jl = 1, jpl 
    456456         DO ji = 1, npti 
    457             zfac = apartf(ji,jl) * closing_gross(ji) * rdt_ice 
     457            zfac = apartf(ji,jl) * closing_gross(ji) * rDt_ice 
    458458            IF( zfac > pa_i(ji,jl) .AND. apartf(ji,jl) /= 0._wp ) THEN 
    459                closing_gross(ji) = pa_i(ji,jl) / apartf(ji,jl) * r1_rdtice 
     459               closing_gross(ji) = pa_i(ji,jl) / apartf(ji,jl) * r1_Dt_ice 
    460460            ENDIF 
    461461         END DO 
     
    467467      ! Reduce the opening rate in proportion 
    468468      DO ji = 1, npti   
    469          zfac = pato_i(ji) + ( opning(ji) - apartf(ji,0) * closing_gross(ji) ) * rdt_ice 
     469         zfac = pato_i(ji) + ( opning(ji) - apartf(ji,0) * closing_gross(ji) ) * rDt_ice 
    470470         IF( zfac < 0._wp ) THEN           ! would lead to negative ato_i 
    471             opning(ji) = apartf(ji,0) * closing_gross(ji) - pato_i(ji) * r1_rdtice  
     471            opning(ji) = apartf(ji,0) * closing_gross(ji) - pato_i(ji) * r1_Dt_ice  
    472472         ELSEIF( zfac > zasum(ji) ) THEN   ! would lead to ato_i > asum 
    473             opning(ji) = apartf(ji,0) * closing_gross(ji) + ( zasum(ji) - pato_i(ji) ) * r1_rdtice  
     473            opning(ji) = apartf(ji,0) * closing_gross(ji) + ( zasum(ji) - pato_i(ji) ) * r1_Dt_ice  
    474474         ENDIF 
    475475      END DO 
     
    515515      !-------------------------------------------------------- 
    516516      DO ji = 1, npti 
    517          ato_i_1d(ji) = MAX( 0._wp, ato_i_1d(ji) + ( opning(ji) - apartf(ji,0) * closing_gross(ji) ) * rdt_ice ) 
     517         ato_i_1d(ji) = MAX( 0._wp, ato_i_1d(ji) + ( opning(ji) - apartf(ji,0) * closing_gross(ji) ) * rDt_ice ) 
    518518      END DO 
    519519       
     
    533533                
    534534               ! area of ridging / rafting ice (airdg1) and of new ridge (airdg2) 
    535                airdg1 = aridge(ji,jl1) * closing_gross(ji) * rdt_ice 
    536                airft1 = araft (ji,jl1) * closing_gross(ji) * rdt_ice 
     535               airdg1 = aridge(ji,jl1) * closing_gross(ji) * rDt_ice 
     536               airft1 = araft (ji,jl1) * closing_gross(ji) * rDt_ice 
    537537 
    538538               airdg2(ji) = airdg1 * hi_hrdg(ji,jl1) 
     
    575575 
    576576               ! Ice-ocean exchanges associated with ice porosity 
    577                wfx_dyn_1d(ji) = wfx_dyn_1d(ji) - vsw * rhoi * r1_rdtice   ! increase in ice volume due to seawater frozen in voids 
    578                sfx_dyn_1d(ji) = sfx_dyn_1d(ji) - vsw * sss_1d(ji) * rhoi * r1_rdtice 
    579                hfx_dyn_1d(ji) = hfx_dyn_1d(ji) + ersw(ji) * r1_rdtice          ! > 0 [W.m-2]  
     577               wfx_dyn_1d(ji) = wfx_dyn_1d(ji) - vsw * rhoi * r1_Dt_ice   ! increase in ice volume due to seawater frozen in voids 
     578               sfx_dyn_1d(ji) = sfx_dyn_1d(ji) - vsw * sss_1d(ji) * rhoi * r1_Dt_ice 
     579               hfx_dyn_1d(ji) = hfx_dyn_1d(ji) + ersw(ji) * r1_Dt_ice          ! > 0 [W.m-2]  
    580580 
    581581               ! Put the snow lost by ridging into the ocean 
    582582               !  Note that esrdg > 0; the ocean must cool to melt snow. If the ocean temp = Tf already, new ice must grow. 
    583583               wfx_snw_dyn_1d(ji) = wfx_snw_dyn_1d(ji) + ( rhos * vsrdg(ji) * ( 1._wp - rn_fsnwrdg )   &   ! fresh water source for ocean 
    584                   &                                      + rhos * vsrft(ji) * ( 1._wp - rn_fsnwrft ) ) * r1_rdtice 
     584                  &                                      + rhos * vsrft(ji) * ( 1._wp - rn_fsnwrft ) ) * r1_Dt_ice 
    585585 
    586586               ! virtual salt flux to keep salinity constant 
    587587               IF( nn_icesal /= 2 )  THEN 
    588588                  sirdg2(ji)     = sirdg2(ji)     - vsw * ( sss_1d(ji) - s_i_1d(ji) )       ! ridge salinity = s_i 
    589                   sfx_bri_1d(ji) = sfx_bri_1d(ji) + sss_1d(ji) * vsw * rhoi * r1_rdtice  &  ! put back sss_m into the ocean 
    590                      &                            - s_i_1d(ji) * vsw * rhoi * r1_rdtice     ! and get  s_i  from the ocean  
     589                  sfx_bri_1d(ji) = sfx_bri_1d(ji) + sss_1d(ji) * vsw * rhoi * r1_Dt_ice  &  ! put back sss_m into the ocean 
     590                     &                            - s_i_1d(ji) * vsw * rhoi * r1_Dt_ice     ! and get  s_i  from the ocean  
    591591               ENDIF 
    592592 
     
    611611               IF( apartf(ji,jl1) > 0._wp .AND. closing_gross(ji) > 0._wp ) THEN 
    612612                  ! Compute ridging /rafting fractions 
    613                   afrdg = aridge(ji,jl1) * closing_gross(ji) * rdt_ice * z1_ai(ji) 
    614                   afrft = araft (ji,jl1) * closing_gross(ji) * rdt_ice * z1_ai(ji) 
     613                  afrdg = aridge(ji,jl1) * closing_gross(ji) * rDt_ice * z1_ai(ji) 
     614                  afrft = araft (ji,jl1) * closing_gross(ji) * rDt_ice * z1_ai(ji) 
    615615                  ! Compute ridging /rafting ice and new ridges for es 
    616616                  esrdg(ji,jk) = ze_s_2d (ji,jk,jl1) * afrdg 
     
    618618                  ! Put the snow lost by ridging into the ocean 
    619619                  hfx_dyn_1d(ji) = hfx_dyn_1d(ji) + ( - esrdg(ji,jk) * ( 1._wp - rn_fsnwrdg )   &                 ! heat sink for ocean (<0, W.m-2) 
    620                      &                                - esrft(ji,jk) * ( 1._wp - rn_fsnwrft ) ) * r1_rdtice 
     620                     &                                - esrft(ji,jk) * ( 1._wp - rn_fsnwrft ) ) * r1_Dt_ice 
    621621                  ! 
    622622                  ! Remove energy of new ridge to each category jl1 
     
    632632               IF( apartf(ji,jl1) > 0._wp .AND. closing_gross(ji) > 0._wp ) THEN 
    633633                  ! Compute ridging /rafting fractions 
    634                   afrdg = aridge(ji,jl1) * closing_gross(ji) * rdt_ice * z1_ai(ji) 
    635                   afrft = araft (ji,jl1) * closing_gross(ji) * rdt_ice * z1_ai(ji) 
     634                  afrdg = aridge(ji,jl1) * closing_gross(ji) * rDt_ice * z1_ai(ji) 
     635                  afrft = araft (ji,jl1) * closing_gross(ji) * rDt_ice * z1_ai(ji) 
    636636                  ! Compute ridging ice and new ridges for ei 
    637637                  eirdg(ji,jk) = ze_i_2d (ji,jk,jl1) * afrdg + ersw(ji) * r1_nlay_i 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ICE/icedyn_rhg_evp.F90

    r12377 r12495  
    116116      INTEGER ::   jter         ! local integers 
    117117      ! 
    118       REAL(wp) ::   zrhoco                                              ! rau0 * rn_cio 
     118      REAL(wp) ::   zrhoco                                              ! rho0 * rn_cio 
    119119      REAL(wp) ::   zdtevp, z1_dtevp                                    ! time step for subcycling 
    120120      REAL(wp) ::   ecc2, z1_ecc2                                       ! square of yield ellipse eccenticity 
     
    213213      ! 1) define some variables and initialize arrays 
    214214      !------------------------------------------------------------------------------! 
    215       zrhoco = rau0 * rn_cio  
     215      zrhoco = rho0 * rn_cio  
    216216 
    217217      ! ecc2: square of yield ellipse eccenticrity 
     
    220220 
    221221      ! Time step for subcycling 
    222       zdtevp   = rdt_ice / REAL( nn_nevp ) 
     222      zdtevp   = rDt_ice / REAL( nn_nevp ) 
    223223      z1_dtevp = 1._wp / zdtevp 
    224224 
    225225      ! alpha parameters (Bouillon 2009) 
    226226      IF( .NOT. ln_aEVP ) THEN 
    227          zalph1 = ( 2._wp * rn_relast * rdt_ice ) * z1_dtevp 
     227         zalph1 = ( 2._wp * rn_relast * rDt_ice ) * z1_dtevp 
    228228         zalph2 = zalph1 * z1_ecc2 
    229229 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ICE/iceistate.F90

    r12399 r12495  
    374374      IF( ln_ice_embd ) THEN            ! embedded sea-ice: deplete the initial ssh below sea-ice area 
    375375         ! 
    376          ssh(:,:,Kmm) = ssh(:,:,Kmm) - snwice_mass(:,:) * r1_rau0 
    377          ssh(:,:,Kbb) = ssh(:,:,Kbb) - snwice_mass(:,:) * r1_rau0 
     376         ssh(:,:,Kmm) = ssh(:,:,Kmm) - snwice_mass(:,:) * r1_rho0 
     377         ssh(:,:,Kbb) = ssh(:,:,Kbb) - snwice_mass(:,:) * r1_rho0 
    378378         ! 
    379379         IF( .NOT.ln_linssh ) THEN 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ICE/icestp.F90

    r12377 r12495  
    338338      IF( ln_bdy .AND. ln_icediachk )   CALL ctl_warn('par_init: online conservation check does not work with BDY') 
    339339      ! 
    340       rdt_ice   = REAL(nn_fsbc) * rdt          !--- sea-ice timestep and its inverse 
    341       r1_rdtice = 1._wp / rdt_ice 
     340      rDt_ice   = REAL(nn_fsbc) * rn_Dt          !--- sea-ice timestep and its inverse 
     341      r1_Dt_ice = 1._wp / rDt_ice 
    342342      IF(lwp) WRITE(numout,*) 
    343       IF(lwp) WRITE(numout,*) '      ice timestep rdt_ice = nn_fsbc*rdt = ', rdt_ice 
     343      IF(lwp) WRITE(numout,*) '      ice timestep rDt_ice = nn_fsbc*rn_Dt = ', rDt_ice 
    344344      ! 
    345345      r1_nlay_i = 1._wp / REAL( nlay_i, wp )   !--- inverse of nlay_i and nlay_s 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ICE/icethd.F90

    r12377 r12495  
    116116      ELSE      !  if no ice dynamics => transmit directly the atmospheric stress to the ocean 
    117117         DO_2D_00_00 
    118             zfric(ji,jj) = r1_rau0 * SQRT( 0.5_wp *  & 
     118            zfric(ji,jj) = r1_rho0 * SQRT( 0.5_wp *  & 
    119119               &                         (  utau(ji,jj) * utau(ji,jj) + utau(ji-1,jj) * utau(ji-1,jj)   & 
    120120               &                          + vtau(ji,jj) * vtau(ji,jj) + vtau(ji,jj-1) * vtau(ji,jj-1) ) ) * tmask(ji,jj,1) 
     
    136136         ! 
    137137         ! --- Energy received in the lead from atm-oce exchanges, zqld is defined everywhere (J.m-2) --- ! 
    138          zqld =  tmask(ji,jj,1) * rdt_ice *  & 
     138         zqld =  tmask(ji,jj,1) * rDt_ice *  & 
    139139            &    ( ( 1._wp - at_i_b(ji,jj) ) * qsr_oce(ji,jj) * frq_m(ji,jj) +  & 
    140140            &      ( 1._wp - at_i_b(ji,jj) ) * qns_oce(ji,jj) + qemp_oce(ji,jj) ) 
    141141 
    142142         ! --- Energy needed to bring ocean surface layer until its freezing (mostly<0 but >0 if supercooling, J.m-2) --- ! 
    143          zqfr     = rau0 * rcp * e3t_m(ji,jj) * ( t_bo(ji,jj) - ( sst_m(ji,jj) + rt0 ) ) * tmask(ji,jj,1)  ! both < 0 (t_bo < sst) and > 0 (t_bo > sst) 
     143         zqfr     = rho0 * rcp * e3t_m(ji,jj) * ( t_bo(ji,jj) - ( sst_m(ji,jj) + rt0 ) ) * tmask(ji,jj,1)  ! both < 0 (t_bo < sst) and > 0 (t_bo > sst) 
    144144         zqfr_neg = MIN( zqfr , 0._wp )                                                                    ! only < 0 
    145145 
    146146         ! --- Sensible ocean-to-ice heat flux (mostly>0 but <0 if supercooling, W/m2) 
    147147         zfric_u            = MAX( SQRT( zfric(ji,jj) ), zfric_umin )  
    148          qsb_ice_bot(ji,jj) = rswitch * rau0 * rcp * zch * zfric_u * ( ( sst_m(ji,jj) + rt0 ) - t_bo(ji,jj) ) ! W.m-2 
    149  
    150          qsb_ice_bot(ji,jj) = rswitch * MIN( qsb_ice_bot(ji,jj), - zqfr_neg * r1_rdtice / MAX( at_i(ji,jj), epsi10 ) ) 
     148         qsb_ice_bot(ji,jj) = rswitch * rho0 * rcp * zch * zfric_u * ( ( sst_m(ji,jj) + rt0 ) - t_bo(ji,jj) ) ! W.m-2 
     149 
     150         qsb_ice_bot(ji,jj) = rswitch * MIN( qsb_ice_bot(ji,jj), - zqfr_neg * r1_Dt_ice / MAX( at_i(ji,jj), epsi10 ) ) 
    151151         ! upper bound for qsb_ice_bot: the heat retrieved from the ocean must be smaller than the heat necessary to reach  
    152152         !                              the freezing point, so that we do not have SST < T_freeze 
     
    154154 
    155155         !-- Energy Budget of the leads (J.m-2), source of ice growth in open water. Must be < 0 to form ice 
    156          qlead(ji,jj) = MIN( 0._wp , zqld - ( qsb_ice_bot(ji,jj) * at_i(ji,jj) * rdt_ice ) - zqfr ) 
     156         qlead(ji,jj) = MIN( 0._wp , zqld - ( qsb_ice_bot(ji,jj) * at_i(ji,jj) * rDt_ice ) - zqfr ) 
    157157 
    158158         ! If there is ice and leads are warming => transfer energy from the lead budget and use it for bottom melting  
    159159         ! If the grid cell is fully covered by ice (no leads) => transfer energy from the lead budget to the ice bottom budget 
    160160         IF( ( zqld >= 0._wp .AND. at_i(ji,jj) > 0._wp ) .OR. at_i(ji,jj) >= (1._wp - epsi10) ) THEN 
    161             fhld (ji,jj) = rswitch * zqld * r1_rdtice / MAX( at_i(ji,jj), epsi10 ) ! divided by at_i since this is (re)multiplied by a_i in icethd_dh.F90 
     161            fhld (ji,jj) = rswitch * zqld * r1_Dt_ice / MAX( at_i(ji,jj), epsi10 ) ! divided by at_i since this is (re)multiplied by a_i in icethd_dh.F90 
    162162            qlead(ji,jj) = 0._wp 
    163163         ELSE 
     
    185185      !     Third  step in iceupdate.F90  :  heat from ice-ocean mass exchange (zf_mass) + solar 
    186186      qt_oce_ai(:,:) = ( 1._wp - at_i_b(:,:) ) * qns_oce(:,:) + qemp_oce(:,:)  &  ! Non solar heat flux received by the ocean                
    187          &             - qlead(:,:) * r1_rdtice                                &  ! heat flux taken from the ocean where there is open water ice formation 
     187         &             - qlead(:,:) * r1_Dt_ice                                &  ! heat flux taken from the ocean where there is open water ice formation 
    188188         &             - at_i (:,:) * qsb_ice_bot(:,:)                         &  ! heat flux taken by sensible flux 
    189189         &             - at_i (:,:) * fhld       (:,:)                            ! heat flux taken during bottom growth/melt  
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ICE/icethd_da.F90

    r12377 r12495  
    128128         zwlat  = zm1 * ( MAX( 0._wp, sst_1d(ji) - ( t_bo_1d(ji) - rt0 ) ) )**zm2  ! Melt speed rate [m/s] 
    129129         ! 
    130          zda_tot(ji) = MIN( zwlat * zperi * rdt_ice, at_i_1d(ji) )                 ! sea ice concentration decrease (>0) 
     130         zda_tot(ji) = MIN( zwlat * zperi * rDt_ice, at_i_1d(ji) )                 ! sea ice concentration decrease (>0) 
    131131       
    132132         ! --- Distribute reduction among ice categories and calculate associated ice-ocean fluxes --- ! 
     
    137137             
    138138            ! Contribution to salt flux 
    139             sfx_lam_1d(ji) = sfx_lam_1d(ji) + rhoi *  h_i_1d(ji) * zda * s_i_1d(ji) * r1_rdtice 
     139            sfx_lam_1d(ji) = sfx_lam_1d(ji) + rhoi *  h_i_1d(ji) * zda * s_i_1d(ji) * r1_Dt_ice 
    140140             
    141141            ! Contribution to heat flux into the ocean [W.m-2], (<0)   
    142             hfx_thd_1d(ji) = hfx_thd_1d(ji) - zda * r1_rdtice * ( h_i_1d(ji) * r1_nlay_i * SUM( e_i_1d(ji,1:nlay_i) )  & 
     142            hfx_thd_1d(ji) = hfx_thd_1d(ji) - zda * r1_Dt_ice * ( h_i_1d(ji) * r1_nlay_i * SUM( e_i_1d(ji,1:nlay_i) )  & 
    143143                                                                + h_s_1d(ji) * r1_nlay_s * SUM( e_s_1d(ji,1:nlay_s) ) )  
    144144             
    145145            ! Contribution to mass flux 
    146             wfx_lam_1d(ji) =  wfx_lam_1d(ji) + zda * r1_rdtice * ( rhoi * h_i_1d(ji) + rhos * h_s_1d(ji) ) 
     146            wfx_lam_1d(ji) =  wfx_lam_1d(ji) + zda * r1_Dt_ice * ( rhoi * h_i_1d(ji) + rhos * h_s_1d(ji) ) 
    147147             
    148148            ! new concentration 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ICE/icethd_dh.F90

    r10786 r12495  
    7676      REAL(wp) ::   zgrr         ! bottom growth rate 
    7777      REAL(wp) ::   zt_i_new     ! bottom formation temperature 
    78       REAL(wp) ::   z1_rho       ! 1/(rhos+rau0-rhoi) 
     78      REAL(wp) ::   z1_rho       ! 1/(rhos+rho0-rhoi) 
    7979 
    8080      REAL(wp) ::   zQm          ! enthalpy exchanged with the ocean (J/m2), >0 towards the ocean 
     
    130130         ! 
    131131         DO ji = 1, npti 
    132             zq_top(ji)     = MAX( 0._wp, qml_ice_1d(ji) * rdt_ice ) 
     132            zq_top(ji)     = MAX( 0._wp, qml_ice_1d(ji) * rDt_ice ) 
    133133         END DO 
    134134         ! 
     
    138138            zdum           = qns_ice_1d(ji) + qsr_ice_1d(ji) - qtr_ice_top_1d(ji) - qcn_ice_top_1d(ji) 
    139139            qml_ice_1d(ji) = zdum * MAX( 0._wp , SIGN( 1._wp, t_su_1d(ji) - rt0 ) ) 
    140             zq_top(ji)     = MAX( 0._wp, qml_ice_1d(ji) * rdt_ice ) 
     140            zq_top(ji)     = MAX( 0._wp, qml_ice_1d(ji) * rDt_ice ) 
    141141         END DO 
    142142         ! 
     
    145145      DO ji = 1, npti 
    146146         zf_tt(ji)         = qcn_ice_bot_1d(ji) + qsb_ice_bot_1d(ji) + fhld_1d(ji)  
    147          zq_bot(ji)        = MAX( 0._wp, zf_tt(ji) * rdt_ice ) 
     147         zq_bot(ji)        = MAX( 0._wp, zf_tt(ji) * rDt_ice ) 
    148148      END DO 
    149149 
     
    172172         DO ji = 1, npti 
    173173            IF( t_s_1d(ji,jk) > rt0 ) THEN 
    174                hfx_res_1d    (ji) = hfx_res_1d    (ji) + e_s_1d(ji,jk) * zh_s(ji,jk) * a_i_1d(ji) * r1_rdtice   ! heat flux to the ocean [W.m-2], < 0 
    175                wfx_snw_sum_1d(ji) = wfx_snw_sum_1d(ji) + rhos          * zh_s(ji,jk) * a_i_1d(ji) * r1_rdtice   ! mass flux 
     174               hfx_res_1d    (ji) = hfx_res_1d    (ji) + e_s_1d(ji,jk) * zh_s(ji,jk) * a_i_1d(ji) * r1_Dt_ice   ! heat flux to the ocean [W.m-2], < 0 
     175               wfx_snw_sum_1d(ji) = wfx_snw_sum_1d(ji) + rhos          * zh_s(ji,jk) * a_i_1d(ji) * r1_Dt_ice   ! mass flux 
    176176               ! updates 
    177177               dh_s_mlt(ji)    = dh_s_mlt(ji) - zh_s(ji,jk) 
     
    193193            ! 
    194194            ! --- precipitation --- 
    195             zdh_s_pre (ji) = zsnw(ji) * sprecip_1d(ji) * rdt_ice * r1_rhos / at_i_1d(ji)   ! thickness change 
     195            zdh_s_pre (ji) = zsnw(ji) * sprecip_1d(ji) * rDt_ice * r1_rhos / at_i_1d(ji)   ! thickness change 
    196196            zqprec    (ji) = - qprec_ice_1d(ji)                                             ! enthalpy of the precip (>0, J.m-3) 
    197197            ! 
    198             hfx_spr_1d(ji) = hfx_spr_1d(ji) + zdh_s_pre(ji) * a_i_1d(ji) * zqprec(ji)    * r1_rdtice   ! heat flux from snow precip (>0, W.m-2) 
    199             wfx_spr_1d(ji) = wfx_spr_1d(ji) - rhos          * a_i_1d(ji) * zdh_s_pre(ji) * r1_rdtice   ! mass flux, <0 
     198            hfx_spr_1d(ji) = hfx_spr_1d(ji) + zdh_s_pre(ji) * a_i_1d(ji) * zqprec(ji)    * r1_Dt_ice   ! heat flux from snow precip (>0, W.m-2) 
     199            wfx_spr_1d(ji) = wfx_spr_1d(ji) - rhos          * a_i_1d(ji) * zdh_s_pre(ji) * r1_Dt_ice   ! mass flux, <0 
    200200             
    201201            ! --- melt of falling snow --- 
     
    203203            zdeltah       (ji,1) = - rswitch * zq_top(ji) / MAX( zqprec(ji) , epsi20 )   ! thickness change 
    204204            zdeltah       (ji,1) = MAX( - zdh_s_pre(ji), zdeltah(ji,1) )                 ! bound melting  
    205             hfx_snw_1d    (ji)   = hfx_snw_1d    (ji) - zdeltah(ji,1) * a_i_1d(ji) * zqprec(ji)    * r1_rdtice   ! heat used to melt snow (W.m-2, >0) 
    206             wfx_snw_sum_1d(ji)   = wfx_snw_sum_1d(ji) - rhos          * a_i_1d(ji) * zdeltah(ji,1) * r1_rdtice   ! snow melting only = water into the ocean (then without snow precip), >0 
     205            hfx_snw_1d    (ji)   = hfx_snw_1d    (ji) - zdeltah(ji,1) * a_i_1d(ji) * zqprec(ji)    * r1_Dt_ice   ! heat used to melt snow (W.m-2, >0) 
     206            wfx_snw_sum_1d(ji)   = wfx_snw_sum_1d(ji) - rhos          * a_i_1d(ji) * zdeltah(ji,1) * r1_Dt_ice   ! snow melting only = water into the ocean (then without snow precip), >0 
    207207             
    208208            ! updates available heat + precipitations after melting 
     
    243243               zdh_s_mel(ji)    = zdh_s_mel(ji) + zdeltah(ji,jk) 
    244244                
    245                hfx_snw_1d(ji)     = hfx_snw_1d(ji)     - zdeltah(ji,jk) * a_i_1d(ji) * e_s_1d (ji,jk) * r1_rdtice   ! heat used to melt snow(W.m-2, >0) 
    246                wfx_snw_sum_1d(ji) = wfx_snw_sum_1d(ji) - rhos           * a_i_1d(ji) * zdeltah(ji,jk) * r1_rdtice   ! snow melting only = water into the ocean (then without snow precip) 
     245               hfx_snw_1d(ji)     = hfx_snw_1d(ji)     - zdeltah(ji,jk) * a_i_1d(ji) * e_s_1d (ji,jk) * r1_Dt_ice   ! heat used to melt snow(W.m-2, >0) 
     246               wfx_snw_sum_1d(ji) = wfx_snw_sum_1d(ji) - rhos           * a_i_1d(ji) * zdeltah(ji,jk) * r1_Dt_ice   ! snow melting only = water into the ocean (then without snow precip) 
    247247                
    248248               ! updates available heat + thickness 
     
    264264         IF( evap_ice_1d(ji) > 0._wp ) THEN 
    265265            ! 
    266             zdh_s_sub (ji)   = MAX( - h_s_1d(ji) , - evap_ice_1d(ji) * r1_rhos * rdt_ice ) 
    267             zevap_rema(ji)   = evap_ice_1d(ji) * rdt_ice + zdh_s_sub(ji) * rhos   ! remaining evap in kg.m-2 (used for ice melting later on) 
     266            zdh_s_sub (ji)   = MAX( - h_s_1d(ji) , - evap_ice_1d(ji) * r1_rhos * rDt_ice ) 
     267            zevap_rema(ji)   = evap_ice_1d(ji) * rDt_ice + zdh_s_sub(ji) * rhos   ! remaining evap in kg.m-2 (used for ice melting later on) 
    268268            zdeltah   (ji,1) = MAX( zdh_s_sub(ji), - zdh_s_pre(ji) ) 
    269269             
    270270            hfx_sub_1d    (ji) = hfx_sub_1d(ji) + &   ! Heat flux by sublimation [W.m-2], < 0 (sublimate snow that had fallen, then pre-existing snow) 
    271271               &                 ( zdeltah(ji,1) * zqprec(ji) + ( zdh_s_sub(ji) - zdeltah(ji,1) ) * e_s_1d(ji,1) )  & 
    272                &                 * a_i_1d(ji) * r1_rdtice 
    273             wfx_snw_sub_1d(ji) = wfx_snw_sub_1d(ji) - rhos * a_i_1d(ji) * zdh_s_sub(ji) * r1_rdtice   ! Mass flux by sublimation 
     272               &                 * a_i_1d(ji) * r1_Dt_ice 
     273            wfx_snw_sub_1d(ji) = wfx_snw_sub_1d(ji) - rhos * a_i_1d(ji) * zdh_s_sub(ji) * r1_Dt_ice   ! Mass flux by sublimation 
    274274             
    275275            ! new snow thickness 
     
    328328               zfmdt          = - rhoi * zdeltah(ji,jk)               ! Recompute mass flux [kg/m2, >0] 
    329329 
    330                hfx_res_1d(ji) = hfx_res_1d(ji) + zfmdt * a_i_1d(ji) * zEi * r1_rdtice                           ! Heat flux to the ocean [W.m-2], <0 
     330               hfx_res_1d(ji) = hfx_res_1d(ji) + zfmdt * a_i_1d(ji) * zEi * r1_Dt_ice                           ! Heat flux to the ocean [W.m-2], <0 
    331331               !                                                                                                  ice enthalpy zEi is "sent" to the ocean 
    332                sfx_res_1d(ji) = sfx_res_1d(ji) - rhoi * a_i_1d(ji) * zdeltah(ji,jk) * s_i_1d(ji) * r1_rdtice    ! Salt flux 
     332               sfx_res_1d(ji) = sfx_res_1d(ji) - rhoi * a_i_1d(ji) * zdeltah(ji,jk) * s_i_1d(ji) * r1_Dt_ice    ! Salt flux 
    333333               !                                                                                                  using s_i_1d and not sz_i_1d(jk) is ok 
    334                wfx_res_1d(ji) = wfx_res_1d(ji) - rhoi * a_i_1d(ji) * zdeltah(ji,jk) * r1_rdtice                 ! Mass flux 
     334               wfx_res_1d(ji) = wfx_res_1d(ji) - rhoi * a_i_1d(ji) * zdeltah(ji,jk) * r1_Dt_ice                 ! Mass flux 
    335335 
    336336            ELSE                                        !-- Surface melting 
     
    354354               zQm            = zfmdt * zEw                           ! Energy of the melt water sent to the ocean [J/m2, <0] 
    355355                
    356                sfx_sum_1d(ji) = sfx_sum_1d(ji) - rhoi * a_i_1d(ji) * zdeltah(ji,jk) * s_i_1d(ji) * r1_rdtice    ! Salt flux >0 
     356               sfx_sum_1d(ji) = sfx_sum_1d(ji) - rhoi * a_i_1d(ji) * zdeltah(ji,jk) * s_i_1d(ji) * r1_Dt_ice    ! Salt flux >0 
    357357               !                                                                                                  using s_i_1d and not sz_i_1d(jk) is ok) 
    358                hfx_thd_1d(ji) = hfx_thd_1d(ji) + zfmdt * a_i_1d(ji) * zEw * r1_rdtice                           ! Heat flux [W.m-2], < 0 
    359                hfx_sum_1d(ji) = hfx_sum_1d(ji) - zfmdt * a_i_1d(ji) * zdE * r1_rdtice                           ! Heat flux used in this process [W.m-2], > 0   
     358               hfx_thd_1d(ji) = hfx_thd_1d(ji) + zfmdt * a_i_1d(ji) * zEw * r1_Dt_ice                           ! Heat flux [W.m-2], < 0 
     359               hfx_sum_1d(ji) = hfx_sum_1d(ji) - zfmdt * a_i_1d(ji) * zdE * r1_Dt_ice                           ! Heat flux used in this process [W.m-2], > 0   
    360360               !  
    361                wfx_sum_1d(ji) = wfx_sum_1d(ji) - rhoi * a_i_1d(ji) * zdeltah(ji,jk) * r1_rdtice                 ! Mass flux 
     361               wfx_sum_1d(ji) = wfx_sum_1d(ji) - rhoi * a_i_1d(ji) * zdeltah(ji,jk) * r1_Dt_ice                 ! Mass flux 
    362362                
    363363            END IF 
     
    369369            dh_i_sub(ji)    = dh_i_sub(ji)    + zdum 
    370370             
    371             sfx_sub_1d(ji)     = sfx_sub_1d(ji) - rhoi * a_i_1d(ji) * zdum * s_i_1d(ji) * r1_rdtice  ! Salt flux >0 
     371            sfx_sub_1d(ji)     = sfx_sub_1d(ji) - rhoi * a_i_1d(ji) * zdum * s_i_1d(ji) * r1_Dt_ice  ! Salt flux >0 
    372372            !                                                                                          clem: flux is sent to the ocean for simplicity 
    373373            !                                                                                                but salt should remain in the ice except 
    374374            !                                                                                                if all ice is melted. => must be corrected 
    375             hfx_sub_1d(ji)     = hfx_sub_1d(ji) + zdum * e_i_1d(ji,jk) * a_i_1d(ji) * r1_rdtice      ! Heat flux [W.m-2], < 0 
    376  
    377             wfx_ice_sub_1d(ji) = wfx_ice_sub_1d(ji) - rhoi * a_i_1d(ji) * zdum * r1_rdtice           ! Mass flux > 0 
     375            hfx_sub_1d(ji)     = hfx_sub_1d(ji) + zdum * e_i_1d(ji,jk) * a_i_1d(ji) * r1_Dt_ice      ! Heat flux [W.m-2], < 0 
     376 
     377            wfx_ice_sub_1d(ji) = wfx_ice_sub_1d(ji) - rhoi * a_i_1d(ji) * zdum * r1_Dt_ice           ! Mass flux > 0 
    378378 
    379379            ! update remaining mass flux 
     
    400400      ! remaining "potential" evap is sent to ocean 
    401401      DO ji = 1, npti 
    402          wfx_err_sub_1d(ji) = wfx_err_sub_1d(ji) - zevap_rema(ji) * a_i_1d(ji) * r1_rdtice  ! <=0 (net evap for the ocean in kg.m-2.s-1) 
     402         wfx_err_sub_1d(ji) = wfx_err_sub_1d(ji) - zevap_rema(ji) * a_i_1d(ji) * r1_Dt_ice  ! <=0 (net evap for the ocean in kg.m-2.s-1) 
    403403      END DO 
    404404 
     
    428428               !--- zswi12 if 2.0e-8 < dh/dt < 3.6e-7  
    429429               !--- zswi2  if dh/dt > 3.6e-7 
    430                zgrr     = MIN( 1.0e-3, MAX ( dh_i_bog(ji) * r1_rdtice , epsi10 ) ) 
     430               zgrr     = MIN( 1.0e-3, MAX ( dh_i_bog(ji) * r1_Dt_ice , epsi10 ) ) 
    431431               zswi2    = MAX( 0._wp , SIGN( 1._wp , zgrr - 3.6e-7 ) ) 
    432432               zswi12   = MAX( 0._wp , SIGN( 1._wp , zgrr - 2.0e-8 ) ) * ( 1.0 - zswi2 ) 
     
    448448               zdE           = zEi - zEw                                                              ! Specific enthalpy difference (J/kg, <0) 
    449449 
    450                dh_i_bog(ji)  = rdt_ice * MAX( 0._wp , zf_tt(ji) / ( zdE * rhoi ) ) 
     450               dh_i_bog(ji)  = rDt_ice * MAX( 0._wp , zf_tt(ji) / ( zdE * rhoi ) ) 
    451451                
    452452            END DO 
     
    454454            zfmdt          = - rhoi * dh_i_bog(ji)                                                   ! Mass flux x time step (kg/m2, < 0) 
    455455             
    456             hfx_thd_1d(ji) = hfx_thd_1d(ji) + zfmdt * a_i_1d(ji) * zEw * r1_rdtice                           ! Heat flux to the ocean [W.m-2], >0 
    457             hfx_bog_1d(ji) = hfx_bog_1d(ji) - zfmdt * a_i_1d(ji) * zdE * r1_rdtice                           ! Heat flux used in this process [W.m-2], <0 
    458              
    459             sfx_bog_1d(ji) = sfx_bog_1d(ji) - rhoi * a_i_1d(ji) * dh_i_bog(ji) * s_i_new(ji) * r1_rdtice     ! Salt flux, <0 
    460  
    461             wfx_bog_1d(ji) = wfx_bog_1d(ji) - rhoi * a_i_1d(ji) * dh_i_bog(ji) * r1_rdtice                   ! Mass flux, <0 
     456            hfx_thd_1d(ji) = hfx_thd_1d(ji) + zfmdt * a_i_1d(ji) * zEw * r1_Dt_ice                           ! Heat flux to the ocean [W.m-2], >0 
     457            hfx_bog_1d(ji) = hfx_bog_1d(ji) - zfmdt * a_i_1d(ji) * zdE * r1_Dt_ice                           ! Heat flux used in this process [W.m-2], <0 
     458             
     459            sfx_bog_1d(ji) = sfx_bog_1d(ji) - rhoi * a_i_1d(ji) * dh_i_bog(ji) * s_i_new(ji) * r1_Dt_ice     ! Salt flux, <0 
     460 
     461            wfx_bog_1d(ji) = wfx_bog_1d(ji) - rhoi * a_i_1d(ji) * dh_i_bog(ji) * r1_Dt_ice                   ! Mass flux, <0 
    462462 
    463463            ! update heat content (J.m-2) and layer thickness 
     
    490490                  zfmdt             = - zdeltah(ji,jk) * rhoi      ! Mass flux x time step > 0 
    491491 
    492                   hfx_res_1d(ji) = hfx_res_1d(ji) + zfmdt * a_i_1d(ji) * zEi * r1_rdtice                           ! Heat flux to the ocean [W.m-2], <0 
     492                  hfx_res_1d(ji) = hfx_res_1d(ji) + zfmdt * a_i_1d(ji) * zEi * r1_Dt_ice                           ! Heat flux to the ocean [W.m-2], <0 
    493493                  !                                                                                                  ice enthalpy zEi is "sent" to the ocean 
    494                   sfx_res_1d(ji) = sfx_res_1d(ji) - rhoi * a_i_1d(ji) * zdeltah(ji,jk) * s_i_1d(ji) * r1_rdtice    ! Salt flux 
     494                  sfx_res_1d(ji) = sfx_res_1d(ji) - rhoi * a_i_1d(ji) * zdeltah(ji,jk) * s_i_1d(ji) * r1_Dt_ice    ! Salt flux 
    495495                  !                                                                                                  using s_i_1d and not sz_i_1d(jk) is ok 
    496                   wfx_res_1d(ji) = wfx_res_1d(ji) - rhoi * a_i_1d(ji) * zdeltah(ji,jk) * r1_rdtice                 ! Mass flux 
     496                  wfx_res_1d(ji) = wfx_res_1d(ji) - rhoi * a_i_1d(ji) * zdeltah(ji,jk) * r1_Dt_ice                 ! Mass flux 
    497497 
    498498                  ! update heat content (J.m-2) and layer thickness 
     
    520520                  zQm             = zfmdt * zEw                                               ! Heat exchanged with ocean 
    521521 
    522                   hfx_thd_1d(ji)  = hfx_thd_1d(ji) + zfmdt * a_i_1d(ji) * zEw * r1_rdtice                           ! Heat flux to the ocean [W.m-2], <0   
    523                   hfx_bom_1d(ji)  = hfx_bom_1d(ji) - zfmdt * a_i_1d(ji) * zdE * r1_rdtice                           ! Heat used in this process [W.m-2], >0   
    524  
    525                   sfx_bom_1d(ji)  = sfx_bom_1d(ji) - rhoi *  a_i_1d(ji) * zdeltah(ji,jk) * s_i_1d(ji) * r1_rdtice   ! Salt flux 
     522                  hfx_thd_1d(ji)  = hfx_thd_1d(ji) + zfmdt * a_i_1d(ji) * zEw * r1_Dt_ice                           ! Heat flux to the ocean [W.m-2], <0   
     523                  hfx_bom_1d(ji)  = hfx_bom_1d(ji) - zfmdt * a_i_1d(ji) * zdE * r1_Dt_ice                           ! Heat used in this process [W.m-2], >0   
     524 
     525                  sfx_bom_1d(ji)  = sfx_bom_1d(ji) - rhoi *  a_i_1d(ji) * zdeltah(ji,jk) * s_i_1d(ji) * r1_Dt_ice   ! Salt flux 
    526526                  !                                                                                                   using s_i_1d and not sz_i_1d(jk) is ok 
    527527                   
    528                   wfx_bom_1d(ji)  = wfx_bom_1d(ji) - rhoi * a_i_1d(ji) * zdeltah(ji,jk) * r1_rdtice                 ! Mass flux 
     528                  wfx_bom_1d(ji)  = wfx_bom_1d(ji) - rhoi * a_i_1d(ji) * zdeltah(ji,jk) * r1_Dt_ice                 ! Mass flux 
    529529 
    530530                  ! update heat content (J.m-2) and layer thickness 
     
    556556         
    557557         zq_rema(ji)        = zq_rema(ji) + zdeltah(ji,1) * e_s_1d(ji,1)                               ! update available heat (J.m-2) 
    558          hfx_snw_1d(ji)     = hfx_snw_1d(ji) - zdeltah(ji,1) * a_i_1d(ji) * e_s_1d(ji,1) * r1_rdtice   ! Heat used to melt snow, W.m-2 (>0) 
    559          wfx_snw_sum_1d(ji) = wfx_snw_sum_1d(ji) - rhos * a_i_1d(ji) * zdeltah(ji,1) * r1_rdtice       ! Mass flux 
     558         hfx_snw_1d(ji)     = hfx_snw_1d(ji) - zdeltah(ji,1) * a_i_1d(ji) * e_s_1d(ji,1) * r1_Dt_ice   ! Heat used to melt snow, W.m-2 (>0) 
     559         wfx_snw_sum_1d(ji) = wfx_snw_sum_1d(ji) - rhos * a_i_1d(ji) * zdeltah(ji,1) * r1_Dt_ice       ! Mass flux 
    560560         dh_s_mlt(ji)       = dh_s_mlt(ji) + zdeltah(ji,1) 
    561561         !     
    562562         ! Remaining heat flux (W.m-2) is sent to the ocean heat budget 
    563          qt_oce_ai_1d(ji) = qt_oce_ai_1d(ji) + ( zq_rema(ji) * a_i_1d(ji) ) * r1_rdtice 
     563         qt_oce_ai_1d(ji) = qt_oce_ai_1d(ji) + ( zq_rema(ji) * a_i_1d(ji) ) * r1_Dt_ice 
    564564 
    565565         IF( ln_icectl .AND. zq_rema(ji) < 0. .AND. lwp ) WRITE(numout,*) 'ALERTE zq_rema <0 = ', zq_rema(ji) 
     
    571571      ! When snow load excesses Archimede's limit, snow-ice interface goes down under sea-level,  
    572572      ! flooding of seawater transforms snow into ice dh_snowice is positive for the ice 
    573       z1_rho = 1._wp / ( rhos+rau0-rhoi ) 
     573      z1_rho = 1._wp / ( rhos+rho0-rhoi ) 
    574574      DO ji = 1, npti 
    575575         ! 
    576          dh_snowice(ji) = MAX(  0._wp , ( rhos * h_s_1d(ji) + (rhoi-rau0) * h_i_1d(ji) ) * z1_rho ) 
     576         dh_snowice(ji) = MAX(  0._wp , ( rhos * h_s_1d(ji) + (rhoi-rho0) * h_i_1d(ji) ) * z1_rho ) 
    577577 
    578578         h_i_1d(ji)    = h_i_1d(ji) + dh_snowice(ji) 
     
    584584         zQm            = zfmdt * zEw  
    585585          
    586          hfx_thd_1d(ji) = hfx_thd_1d(ji) + zfmdt * a_i_1d(ji) * zEw * r1_rdtice ! Heat flux 
    587  
    588          sfx_sni_1d(ji) = sfx_sni_1d(ji) + sss_1d(ji) * a_i_1d(ji) * zfmdt * r1_rdtice ! Salt flux 
     586         hfx_thd_1d(ji) = hfx_thd_1d(ji) + zfmdt * a_i_1d(ji) * zEw * r1_Dt_ice ! Heat flux 
     587 
     588         sfx_sni_1d(ji) = sfx_sni_1d(ji) + sss_1d(ji) * a_i_1d(ji) * zfmdt * r1_Dt_ice ! Salt flux 
    589589 
    590590         ! Case constant salinity in time: virtual salt flux to keep salinity constant 
    591591         IF( nn_icesal /= 2 )  THEN 
    592             sfx_bri_1d(ji) = sfx_bri_1d(ji) - sss_1d (ji) * a_i_1d(ji) * zfmdt                  * r1_rdtice  & ! put back sss_m     into the ocean 
    593                &                            - s_i_1d(ji)  * a_i_1d(ji) * dh_snowice(ji) * rhoi * r1_rdtice     ! and get  rn_icesal from the ocean  
     592            sfx_bri_1d(ji) = sfx_bri_1d(ji) - sss_1d (ji) * a_i_1d(ji) * zfmdt                  * r1_Dt_ice  & ! put back sss_m     into the ocean 
     593               &                            - s_i_1d(ji)  * a_i_1d(ji) * dh_snowice(ji) * rhoi * r1_Dt_ice     ! and get  rn_icesal from the ocean  
    594594         ENDIF 
    595595 
    596596         ! Mass flux: All snow is thrown in the ocean, and seawater is taken to replace the volume 
    597          wfx_sni_1d(ji)     = wfx_sni_1d(ji)     - a_i_1d(ji) * dh_snowice(ji) * rhoi * r1_rdtice 
    598          wfx_snw_sni_1d(ji) = wfx_snw_sni_1d(ji) + a_i_1d(ji) * dh_snowice(ji) * rhos * r1_rdtice 
     597         wfx_sni_1d(ji)     = wfx_sni_1d(ji)     - a_i_1d(ji) * dh_snowice(ji) * rhoi * r1_Dt_ice 
     598         wfx_snw_sni_1d(ji) = wfx_snw_sni_1d(ji) + a_i_1d(ji) * dh_snowice(ji) * rhos * r1_Dt_ice 
    599599 
    600600         ! update heat content (J.m-2) and layer thickness 
     
    618618            ! mass & energy loss to the ocean 
    619619            hfx_res_1d(ji) = hfx_res_1d(ji) + ( 1._wp - rswitch ) * & 
    620                &                              ( e_s_1d(ji,jk) * h_s_1d(ji) * r1_nlay_s * a_i_1d(ji) * r1_rdtice )  ! heat flux to the ocean [W.m-2], < 0 
     620               &                              ( e_s_1d(ji,jk) * h_s_1d(ji) * r1_nlay_s * a_i_1d(ji) * r1_Dt_ice )  ! heat flux to the ocean [W.m-2], < 0 
    621621            wfx_res_1d(ji) = wfx_res_1d(ji) + ( 1._wp - rswitch ) * & 
    622                &                              ( rhos          * h_s_1d(ji) * r1_nlay_s * a_i_1d(ji) * r1_rdtice )  ! mass flux 
     622               &                              ( rhos          * h_s_1d(ji) * r1_nlay_s * a_i_1d(ji) * r1_Dt_ice )  ! mass flux 
    623623            ! update energy (mass is updated in the next loop) 
    624624            e_s_1d(ji,jk) = rswitch * e_s_1d(ji,jk) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ICE/icethd_do.F90

    r12377 r12495  
    141141         ! Physical constants 
    142142         zhicrit = 0.04                                          ! frazil ice thickness 
    143          ztwogp  = 2. * rau0 / ( grav * 0.3 * ( rau0 - rhoi ) )  ! reduced grav 
     143         ztwogp  = 2. * rho0 / ( grav * 0.3 * ( rho0 - rhoi ) )  ! reduced grav 
    144144         zsqcd   = 1.0 / SQRT( 1.3 * zcai )                      ! 1/SQRT(airdensity*drag) 
    145145         zgamafr = 0.03 
     
    289289 
    290290            ! Contribution to heat flux to the ocean [W.m-2], >0   
    291             hfx_thd_1d(ji) = hfx_thd_1d(ji) + zfmdt * zEw * r1_rdtice 
     291            hfx_thd_1d(ji) = hfx_thd_1d(ji) + zfmdt * zEw * r1_Dt_ice 
    292292            ! Total heat flux used in this process [W.m-2]   
    293             hfx_opw_1d(ji) = hfx_opw_1d(ji) - zfmdt * zdE * r1_rdtice 
     293            hfx_opw_1d(ji) = hfx_opw_1d(ji) - zfmdt * zdE * r1_Dt_ice 
    294294            ! mass flux 
    295             wfx_opw_1d(ji) = wfx_opw_1d(ji) - zv_newice(ji) * rhoi * r1_rdtice 
     295            wfx_opw_1d(ji) = wfx_opw_1d(ji) - zv_newice(ji) * rhoi * r1_Dt_ice 
    296296            ! salt flux 
    297             sfx_opw_1d(ji) = sfx_opw_1d(ji) - zv_newice(ji) * rhoi * zs_newice(ji) * r1_rdtice 
     297            sfx_opw_1d(ji) = sfx_opw_1d(ji) - zv_newice(ji) * rhoi * zs_newice(ji) * r1_Dt_ice 
    298298         END DO 
    299299          
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ICE/icethd_ent.F90

    r10069 r12495  
    129129      ! then we should not (* a_i) again but not important since this is just to check that remap error is ~0 
    130130      DO ji = 1, npti 
    131          hfx_err_rem_1d(ji) = hfx_err_rem_1d(ji) + a_i_1d(ji) * r1_rdtice *  & 
     131         hfx_err_rem_1d(ji) = hfx_err_rem_1d(ji) + a_i_1d(ji) * r1_Dt_ice *  & 
    132132            &               ( SUM( qnew(ji,1:nlay_i) ) * zhnew(ji) - SUM( eh_i_old(ji,0:nlay_i+1) ) )  
    133133      END DO 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ICE/icethd_pnd.F90

    r12377 r12495  
    165165            ! melt pond mass flux (<0) 
    166166            IF( zdv_mlt > 0._wp ) THEN 
    167                zfac = zfr_mlt * zdv_mlt * rhow * r1_rdtice 
     167               zfac = zfr_mlt * zdv_mlt * rhow * r1_Dt_ice 
    168168               wfx_pnd_1d(ji) = wfx_pnd_1d(ji) - zfac 
    169169               ! 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ICE/icethd_sal.F90

    r12377 r12495  
    6868      CASE( 2 )       !  time varying salinity with linear profile  ! 
    6969         !            !---------------------------------------------! 
    70          z1_time_gd = 1._wp / rn_time_gd * rdt_ice 
    71          z1_time_fl = 1._wp / rn_time_fl * rdt_ice 
     70         z1_time_gd = 1._wp / rn_time_gd * rDt_ice 
     71         z1_time_fl = 1._wp / rn_time_fl * rDt_ice 
    7272         ! 
    7373         DO ji = 1, npti 
     
    9898                
    9999               ! Salt flux 
    100                sfx_bri_1d(ji) = sfx_bri_1d(ji) - rhoi * a_i_1d(ji) * h_i_1d(ji) * ( zs_i_fl + zs_i_gd ) * r1_rdtice 
     100               sfx_bri_1d(ji) = sfx_bri_1d(ji) - rhoi * a_i_1d(ji) * h_i_1d(ji) * ( zs_i_fl + zs_i_gd ) * r1_Dt_ice 
    101101            ENDIF 
    102102         END DO 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ICE/icethd_zdf_bl99.F90

    r12396 r12495  
    320320            DO ji = 1, npti 
    321321               zcpi = rcpi + zgamma * sz_i_1d(ji,jk) / MAX( ( t_i_1d(ji,jk) - rt0 ) * ( ztiold(ji,jk) - rt0 ), epsi10 ) 
    322                zeta_i(ji,jk) = rdt_ice * r1_rhoi * z1_h_i(ji) / MAX( epsi10, zcpi )  
     322               zeta_i(ji,jk) = rDt_ice * r1_rhoi * z1_h_i(ji) / MAX( epsi10, zcpi )  
    323323            END DO 
    324324         END DO 
     
    326326         DO jk = 1, nlay_s 
    327327            DO ji = 1, npti 
    328                zeta_s(ji,jk) = rdt_ice * r1_rhos * r1_rcpi * z1_h_s(ji) 
     328               zeta_s(ji,jk) = rDt_ice * r1_rhos * r1_rcpi * z1_h_s(ji) 
    329329            END DO 
    330330         END DO 
     
    826826               IF( t_su_1d(ji) < rt0 ) THEN  ! case T_su < 0degC 
    827827                  zhfx_err = ( qns_ice_1d(ji)     + qsr_ice_1d(ji)     - zradtr_i(ji,nlay_i) - qcn_ice_bot_1d(ji)  & 
    828                      &       + zdq * r1_rdtice ) * a_i_1d(ji) 
     828                     &       + zdq * r1_Dt_ice ) * a_i_1d(ji) 
    829829               ELSE                          ! case T_su = 0degC 
    830830                  zhfx_err = ( qcn_ice_top_1d(ji) + qtr_ice_top_1d(ji) - zradtr_i(ji,nlay_i) - qcn_ice_bot_1d(ji)  & 
    831                      &       + zdq * r1_rdtice ) * a_i_1d(ji) 
     831                     &       + zdq * r1_Dt_ice ) * a_i_1d(ji) 
    832832               ENDIF 
    833833                
     
    835835             
    836836               zhfx_err    = ( qcn_ice_top_1d(ji) + qtr_ice_top_1d(ji) - zradtr_i(ji,nlay_i) - qcn_ice_bot_1d(ji)  & 
    837                   &          + zdq * r1_rdtice ) * a_i_1d(ji) 
     837                  &          + zdq * r1_Dt_ice ) * a_i_1d(ji) 
    838838             
    839839            ENDIF 
     
    843843            ! 
    844844            ! hfx_dif = Heat flux diagnostic of sensible heat used to warm/cool ice in W.m-2    
    845             hfx_dif_1d(ji) = hfx_dif_1d(ji) - zdq * r1_rdtice * a_i_1d(ji) 
     845            hfx_dif_1d(ji) = hfx_dif_1d(ji) - zdq * r1_Dt_ice * a_i_1d(ji) 
    846846            ! 
    847847         END DO 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ICE/iceupdate.F90

    r12377 r12495  
    171171         snwice_mass  (ji,jj) = tmask(ji,jj,1) * ( rhos * vt_s(ji,jj) + rhoi * vt_i(ji,jj)  )  
    172172         !                                               ! time evolution of snow+ice mass 
    173          snwice_fmass (ji,jj) = ( snwice_mass(ji,jj) - snwice_mass_b(ji,jj) ) * r1_rdtice 
     173         snwice_fmass (ji,jj) = ( snwice_mass(ji,jj) - snwice_mass_b(ji,jj) ) * r1_Dt_ice 
    174174          
    175175      END_2D 
     
    329329      ENDIF 
    330330 
    331       zrhoco = rau0 * rn_cio 
     331      zrhoco = rho0 * rn_cio 
    332332      ! 
    333333      IF( MOD( kt-1, nn_fsbc ) == 0 ) THEN     !==  Ice time-step only  ==!   (i.e. surface module time-step) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ICE/icevar.F90

    r12377 r12495  
    488488         DO_3D_11_11( 1, nlay_i ) 
    489489            ! update exchanges with ocean 
    490             hfx_res(ji,jj)   = hfx_res(ji,jj) - (1._wp - zswitch(ji,jj) ) * e_i(ji,jj,jk,jl) * r1_rdtice ! W.m-2 <0 
     490            hfx_res(ji,jj)   = hfx_res(ji,jj) - (1._wp - zswitch(ji,jj) ) * e_i(ji,jj,jk,jl) * r1_Dt_ice ! W.m-2 <0 
    491491            e_i(ji,jj,jk,jl) = e_i(ji,jj,jk,jl) * zswitch(ji,jj) 
    492492            t_i(ji,jj,jk,jl) = t_i(ji,jj,jk,jl) * zswitch(ji,jj) + rt0 * ( 1._wp - zswitch(ji,jj) ) 
     
    495495         DO_3D_11_11( 1, nlay_s ) 
    496496            ! update exchanges with ocean 
    497             hfx_res(ji,jj)   = hfx_res(ji,jj) - (1._wp - zswitch(ji,jj) ) * e_s(ji,jj,jk,jl) * r1_rdtice ! W.m-2 <0 
     497            hfx_res(ji,jj)   = hfx_res(ji,jj) - (1._wp - zswitch(ji,jj) ) * e_s(ji,jj,jk,jl) * r1_Dt_ice ! W.m-2 <0 
    498498            e_s(ji,jj,jk,jl) = e_s(ji,jj,jk,jl) * zswitch(ji,jj) 
    499499            t_s(ji,jj,jk,jl) = t_s(ji,jj,jk,jl) * zswitch(ji,jj) + rt0 * ( 1._wp - zswitch(ji,jj) ) 
     
    505505         DO_2D_11_11 
    506506            ! update exchanges with ocean 
    507             sfx_res(ji,jj)  = sfx_res(ji,jj) + (1._wp - zswitch(ji,jj) ) * sv_i(ji,jj,jl)   * rhoi * r1_rdtice 
    508             wfx_res(ji,jj)  = wfx_res(ji,jj) + (1._wp - zswitch(ji,jj) ) * v_i (ji,jj,jl)   * rhoi * r1_rdtice 
    509             wfx_res(ji,jj)  = wfx_res(ji,jj) + (1._wp - zswitch(ji,jj) ) * v_s (ji,jj,jl)   * rhos * r1_rdtice 
     507            sfx_res(ji,jj)  = sfx_res(ji,jj) + (1._wp - zswitch(ji,jj) ) * sv_i(ji,jj,jl)   * rhoi * r1_Dt_ice 
     508            wfx_res(ji,jj)  = wfx_res(ji,jj) + (1._wp - zswitch(ji,jj) ) * v_i (ji,jj,jl)   * rhoi * r1_Dt_ice 
     509            wfx_res(ji,jj)  = wfx_res(ji,jj) + (1._wp - zswitch(ji,jj) ) * v_s (ji,jj,jl)   * rhos * r1_Dt_ice 
    510510            ! 
    511511            a_i  (ji,jj,jl) = a_i (ji,jj,jl) * zswitch(ji,jj) 
     
    717717      !! ** Purpose :  compute the equivalent ssh in lead when sea ice is embedded 
    718718      !! 
    719       !! ** Method  :  ssh_lead = ssh + (Mice + Msnow) / rau0 
     719      !! ** Method  :  ssh_lead = ssh + (Mice + Msnow) / rho0 
    720720      !! 
    721721      !! ** Reference : Jean-Michel Campin, John Marshall, David Ferreira, 
     
    747747         zintb = REAL( nn_fsbc + 1 ) / REAL( nn_fsbc ) * 0.5_wp 
    748748         ! 
    749          zsnwiceload(:,:) = ( zintn * psnwice_mass(:,:) + zintb * psnwice_mass_b(:,:) ) * r1_rau0 
     749         zsnwiceload(:,:) = ( zintn * psnwice_mass(:,:) + zintb * psnwice_mass_b(:,:) ) * r1_rho0 
    750750         ! 
    751751      ELSE 
     
    937937               ! In case snow load is in excess that would lead to transformation from snow to ice 
    938938               ! Then, transfer the snow excess into the ice (different from icethd_dh) 
    939                zdh = MAX( 0._wp, ( rhos * ph_s(ji,jl) + ( rhoi - rau0 ) * ph_i(ji,jl) ) * r1_rau0 )  
     939               zdh = MAX( 0._wp, ( rhos * ph_s(ji,jl) + ( rhoi - rho0 ) * ph_i(ji,jl) ) * r1_rho0 )  
    940940               ! recompute h_i, h_s avoiding out of bounds values 
    941941               ph_i(ji,jl) = MIN( hi_max(jl), ph_i(ji,jl) + zdh ) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/ICE/icewri.F90

    r12377 r12495  
    8787      ! Standard outputs 
    8888      !----------------- 
    89       zrho1 = ( rau0 - rhoi ) * r1_rau0 ; zrho2 = rhos * r1_rau0 
     89      zrho1 = ( rho0 - rhoi ) * r1_rho0 ; zrho2 = rhos * r1_rho0 
    9090      ! masks 
    9191      CALL iom_put( 'icemask'  , zmsk00 )   ! ice mask 0% 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/NST/agrif_oce_sponge.F90

    r12377 r12495  
    439439 
    440440         !* set relaxation time scale 
    441          IF( neuler == 0 .AND. lk_agrif_fstep ) THEN   ;   ztrelax =   rn_trelax_tra  / (        rdt ) 
    442          ELSE                                          ;   ztrelax =   rn_trelax_tra  / (2._wp * rdt ) 
     441         IF( l_1st_euler .AND. lk_agrif_fstep ) THEN   ;   ztrelax =   rn_trelax_tra  / (        rn_Dt ) 
     442         ELSE                                          ;   ztrelax =   rn_trelax_tra  / (2._wp * rn_Dt ) 
    443443         ENDIF 
    444444 
     
    596596#endif 
    597597         !* set relaxation time scale 
    598          IF( neuler == 0 .AND. lk_agrif_fstep ) THEN   ;   ztrelax =   rn_trelax_dyn  / (        rdt ) 
    599          ELSE                                          ;   ztrelax =   rn_trelax_dyn  / (2._wp * rdt ) 
     598         IF( l_1st_euler .AND. lk_agrif_fstep ) THEN   ;   ztrelax =   rn_trelax_dyn  / (        rn_Dt ) 
     599         ELSE                                          ;   ztrelax =   rn_trelax_dyn  / (2._wp * rn_Dt ) 
    600600         ENDIF 
    601601         ! 
     
    772772# endif 
    773773         !* set relaxation time scale 
    774          IF( neuler == 0 .AND. lk_agrif_fstep ) THEN   ;   ztrelax =   rn_trelax_dyn  / (        rdt ) 
    775          ELSE                                          ;   ztrelax =   rn_trelax_dyn  / (2._wp * rdt ) 
     774         IF( l_1st_euler .AND. lk_agrif_fstep ) THEN   ;   ztrelax =   rn_trelax_dyn  / (        rn_Dt ) 
     775         ELSE                                          ;   ztrelax =   rn_trelax_dyn  / (2._wp * rn_Dt ) 
    776776         ENDIF 
    777777         ! 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/NST/agrif_oce_update.F90

    r12377 r12495  
    256256      ! 2) BEFORE fields: 
    257257      !------------------ 
    258       IF (.NOT.(lk_agrif_fstep.AND.(neuler==0) )) THEN 
     258      IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler) )) THEN 
    259259         ! 
    260260         ! Vertical scale factor interpolations 
     
    351351         ENDDO 
    352352 
    353          IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN 
     353         IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN 
    354354            ! Add asselin part 
    355355            DO jn = 1,jpts 
     
    361361                           ztnu = tabres_child(ji,jj,jk,jn) * e3t(ji,jj,jk,Kmm_a) 
    362362                           ztno = ts(ji,jj,jk,jn,Kmm_a) * e3t(ji,jj,jk,Krhs_a) 
    363                            ts(ji,jj,jk,jn,Kbb_a) = ( ztb + atfp * ( ztnu - ztno) )  &  
     363                           ts(ji,jj,jk,jn,Kbb_a) = ( ztb + rn_atfp * ( ztnu - ztno) )  &  
    364364                                     &        * tmask(ji,jj,jk) / e3t(ji,jj,jk,Kbb_a) 
    365365                        ENDIF 
     
    381381         END DO 
    382382         ! 
    383          IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     383         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    384384            ts(i1:i2,j1:j2,1:jpkm1,1:jpts,Kbb_a)  = ts(i1:i2,j1:j2,1:jpkm1,1:jpts,Kmm_a) 
    385385         ENDIF 
     
    422422         ENDDO 
    423423!< jc tmp 
    424          IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN 
     424         IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN 
    425425            ! Add asselin part 
    426426            DO jn = 1,jpts 
     
    432432                           ztnu = tabres(ji,jj,jk,jn) 
    433433                           ztno = ts(ji,jj,jk,jn,Kmm_a) * e3t(ji,jj,jk,Krhs_a) 
    434                            ts(ji,jj,jk,jn,Kbb_a) = ( ztb + atfp * ( ztnu - ztno) )  &  
     434                           ts(ji,jj,jk,jn,Kbb_a) = ( ztb + rn_atfp * ( ztnu - ztno) )  &  
    435435                                     &        * tmask(ji,jj,jk) / e3t(ji,jj,jk,Kbb_a) 
    436436                        ENDIF 
     
    452452         END DO 
    453453         ! 
    454          IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     454         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    455455            ts(i1:i2,j1:j2,k1:k2,1:jpts,Kbb_a)  = ts(i1:i2,j1:j2,k1:k2,1:jpts,Kmm_a) 
    456456         ENDIF 
     
    551551            DO jj=j1,j2 
    552552               DO ji=i1,i2 
    553                   IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN ! Add asselin part 
     553                  IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN ! Add asselin part 
    554554                     zub  = uu(ji,jj,jk,Kbb_a) * e3u(ji,jj,jk,Kbb_a)  ! fse3t_b prior update should be used 
    555555                     zuno = uu(ji,jj,jk,Kmm_a) * e3u(ji,jj,jk,Krhs_a) 
    556556                     zunu = tabres_child(ji,jj,jk) * e3u(ji,jj,jk,Kmm_a) 
    557                      uu(ji,jj,jk,Kbb_a) = ( zub + atfp * ( zunu - zuno) ) &       
     557                     uu(ji,jj,jk,Kbb_a) = ( zub + rn_atfp * ( zunu - zuno) ) &       
    558558                                    & * umask(ji,jj,jk) / e3u(ji,jj,jk,Kbb_a) 
    559559                  ENDIF 
     
    564564         END DO 
    565565         ! 
    566          IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     566         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    567567            uu(i1:i2,j1:j2,1:jpkm1,Kbb_a)  = uu(i1:i2,j1:j2,1:jpkm1,Kmm_a) 
    568568         ENDIF 
     
    597597                  tabres(ji,jj,jk,1) = tabres(ji,jj,jk,1) * r1_e2u(ji,jj)  
    598598                  ! 
    599                   IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN ! Add asselin part 
     599                  IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN ! Add asselin part 
    600600                     zub  = uu(ji,jj,jk,Kbb_a) * e3u(ji,jj,jk,Kbb_a)  ! fse3t_b prior update should be used 
    601601                     zuno = uu(ji,jj,jk,Kmm_a) * e3u(ji,jj,jk,Krhs_a) 
    602602                     zunu = tabres(ji,jj,jk,1) 
    603                      uu(ji,jj,jk,Kbb_a) = ( zub + atfp * ( zunu - zuno) ) &       
     603                     uu(ji,jj,jk,Kbb_a) = ( zub + rn_atfp * ( zunu - zuno) ) &       
    604604                                    & * umask(ji,jj,jk) / e3u(ji,jj,jk,Kbb_a) 
    605605                  ENDIF 
     
    610610         END DO 
    611611         ! 
    612          IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     612         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    613613            uu(i1:i2,j1:j2,k1:k2,Kbb_a)  = uu(i1:i2,j1:j2,k1:k2,Kmm_a) 
    614614         ENDIF 
     
    751751            DO jj=j1,j2 
    752752               DO ji=i1,i2 
    753                   IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN ! Add asselin part 
     753                  IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN ! Add asselin part 
    754754                     zvb  = vv(ji,jj,jk,Kbb_a) * e3v(ji,jj,jk,Kbb_a) ! fse3t_b prior update should be used 
    755755                     zvno = vv(ji,jj,jk,Kmm_a) * e3v(ji,jj,jk,Krhs_a) 
    756756                     zvnu = tabres_child(ji,jj,jk) * e3v(ji,jj,jk,Kmm_a) 
    757                      vv(ji,jj,jk,Kbb_a) = ( zvb + atfp * ( zvnu - zvno) ) &       
     757                     vv(ji,jj,jk,Kbb_a) = ( zvb + rn_atfp * ( zvnu - zvno) ) &       
    758758                                    & * vmask(ji,jj,jk) / e3v(ji,jj,jk,Kbb_a) 
    759759                  ENDIF 
     
    764764         END DO 
    765765         ! 
    766          IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     766         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    767767            vv(i1:i2,j1:j2,1:jpkm1,Kbb_a)  = vv(i1:i2,j1:j2,1:jpkm1,Kmm_a) 
    768768         ENDIF 
     
    801801                  tabres(ji,jj,jk,1) = tabres(ji,jj,jk,1) * r1_e1v(ji,jj) 
    802802                  ! 
    803                   IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN ! Add asselin part 
     803                  IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN ! Add asselin part 
    804804                     zvb  = vv(ji,jj,jk,Kbb_a) * e3v(ji,jj,jk,Kbb_a) ! fse3t_b prior update should be used 
    805805                     zvno = vv(ji,jj,jk,Kmm_a) * e3v(ji,jj,jk,Krhs_a) 
    806806                     zvnu = tabres(ji,jj,jk,1) 
    807                      vv(ji,jj,jk,Kbb_a) = ( zvb + atfp * ( zvnu - zvno) ) &       
     807                     vv(ji,jj,jk,Kbb_a) = ( zvb + rn_atfp * ( zvnu - zvno) ) &       
    808808                                    & * vmask(ji,jj,jk) / e3v(ji,jj,jk,Kbb_a) 
    809809                  ENDIF 
     
    814814         END DO 
    815815         ! 
    816          IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     816         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    817817            vv(i1:i2,j1:j2,k1:k2,Kbb_a)  = vv(i1:i2,j1:j2,k1:k2,Kmm_a) 
    818818         ENDIF 
     
    907907               ! Update barotropic velocities: 
    908908               IF ( .NOT.ln_dynspg_ts .OR. (ln_dynspg_ts.AND.(.NOT.ln_bt_fw)) ) THEN 
    909                   IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN ! Add asselin part 
     909                  IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN ! Add asselin part 
    910910                     zcorr = (tabres(ji,jj) - uu_b(ji,jj,Kmm_a) * hu(ji,jj,Krhs_a)) * r1_hu(ji,jj,Kbb_a) 
    911                      uu_b(ji,jj,Kbb_a) = uu_b(ji,jj,Kbb_a) + atfp * zcorr * umask(ji,jj,1) 
     911                     uu_b(ji,jj,Kbb_a) = uu_b(ji,jj,Kbb_a) + rn_atfp * zcorr * umask(ji,jj,1) 
    912912                  END IF 
    913913               ENDIF     
     
    928928         END DO 
    929929         ! 
    930          IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     930         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    931931            uu_b(i1:i2,j1:j2,Kbb_a)  = uu_b(i1:i2,j1:j2,Kmm_a) 
    932932         ENDIF 
     
    973973               ! Update barotropic velocities: 
    974974               IF ( .NOT.ln_dynspg_ts .OR. (ln_dynspg_ts.AND.(.NOT.ln_bt_fw)) ) THEN 
    975                   IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN ! Add asselin part 
     975                  IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN ! Add asselin part 
    976976                     zcorr = (tabres(ji,jj) - vv_b(ji,jj,Kmm_a) * hv(ji,jj,Krhs_a)) * r1_hv(ji,jj,Kbb_a) 
    977                      vv_b(ji,jj,Kbb_a) = vv_b(ji,jj,Kbb_a) + atfp * zcorr * vmask(ji,jj,1) 
     977                     vv_b(ji,jj,Kbb_a) = vv_b(ji,jj,Kbb_a) + rn_atfp * zcorr * vmask(ji,jj,1) 
    978978                  END IF 
    979979               ENDIF               
     
    994994         END DO 
    995995         ! 
    996          IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     996         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    997997            vv_b(i1:i2,j1:j2,Kbb_a)  = vv_b(i1:i2,j1:j2,Kmm_a) 
    998998         ENDIF 
     
    10211021         END DO 
    10221022      ELSE 
    1023          IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN 
     1023         IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN 
    10241024            DO jj=j1,j2 
    10251025               DO ji=i1,i2 
    10261026                  ssh(ji,jj,Kbb_a) =   ssh(ji,jj,Kbb_a) & 
    1027                         & + atfp * ( tabres(ji,jj) - ssh(ji,jj,Kmm_a) ) * tmask(ji,jj,1) 
     1027                        & + rn_atfp * ( tabres(ji,jj) - ssh(ji,jj,Kmm_a) ) * tmask(ji,jj,1) 
    10281028               END DO 
    10291029            END DO 
     
    10361036         END DO 
    10371037         ! 
    1038          IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     1038         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    10391039            ssh(i1:i2,j1:j2,Kbb_a)  = ssh(i1:i2,j1:j2,Kmm_a) 
    10401040         ENDIF 
     
    11171117         IF (western_side) THEN 
    11181118            DO jj=j1,j2 
    1119                zcor = rdt * r1_e1e2t(i1  ,jj) * e2u(i1,jj) * (ub2_b(i1,jj)-tabres(i1,jj))  
     1119               zcor = rn_Dt * r1_e1e2t(i1  ,jj) * e2u(i1,jj) * (ub2_b(i1,jj)-tabres(i1,jj))  
    11201120               ssh(i1  ,jj,Kmm_a) = ssh(i1  ,jj,Kmm_a) + zcor 
    1121                IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) ssh(i1  ,jj,Kbb_a) = ssh(i1  ,jj,Kbb_a) + atfp * zcor 
     1121               IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) ssh(i1  ,jj,Kbb_a) = ssh(i1  ,jj,Kbb_a) + rn_atfp * zcor 
    11221122            END DO 
    11231123         ENDIF 
    11241124         IF (eastern_side) THEN 
    11251125            DO jj=j1,j2 
    1126                zcor = - rdt * r1_e1e2t(i2+1,jj) * e2u(i2,jj) * (ub2_b(i2,jj)-tabres(i2,jj)) 
     1126               zcor = - rn_Dt * r1_e1e2t(i2+1,jj) * e2u(i2,jj) * (ub2_b(i2,jj)-tabres(i2,jj)) 
    11271127               ssh(i2+1,jj,Kmm_a) = ssh(i2+1,jj,Kmm_a) + zcor 
    1128                IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) ssh(i2+1,jj,Kbb_a) = ssh(i2+1,jj,Kbb_a) + atfp * zcor 
     1128               IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) ssh(i2+1,jj,Kbb_a) = ssh(i2+1,jj,Kbb_a) + rn_atfp * zcor 
    11291129            END DO 
    11301130         ENDIF 
     
    12051205         IF (southern_side) THEN 
    12061206            DO ji=i1,i2 
    1207                zcor = rdt * r1_e1e2t(ji,j1  ) * e1v(ji,j1  ) * (vb2_b(ji,j1)-tabres(ji,j1)) 
     1207               zcor = rn_Dt * r1_e1e2t(ji,j1  ) * e1v(ji,j1  ) * (vb2_b(ji,j1)-tabres(ji,j1)) 
    12081208               ssh(ji,j1  ,Kmm_a) = ssh(ji,j1  ,Kmm_a) + zcor 
    1209                IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) ssh(ji,j1  ,Kbb_a) = ssh(ji,j1,Kbb_a) + atfp * zcor 
     1209               IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) ssh(ji,j1  ,Kbb_a) = ssh(ji,j1,Kbb_a) + rn_atfp * zcor 
    12101210            END DO 
    12111211         ENDIF 
    12121212         IF (northern_side) THEN                
    12131213            DO ji=i1,i2 
    1214                zcor = - rdt * r1_e1e2t(ji,j2+1) * e1v(ji,j2  ) * (vb2_b(ji,j2)-tabres(ji,j2)) 
     1214               zcor = - rn_Dt * r1_e1e2t(ji,j2+1) * e1v(ji,j2  ) * (vb2_b(ji,j2)-tabres(ji,j2)) 
    12151215               ssh(ji,j2+1,Kmm_a) = ssh(ji,j2+1,Kmm_a) + zcor 
    1216                IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) ssh(ji,j2+1,Kbb_a) = ssh(ji,j2+1,Kbb_a) + atfp * zcor 
     1216               IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) ssh(ji,j2+1,Kbb_a) = ssh(ji,j2+1,Kbb_a) + rn_atfp * zcor 
    12171217            END DO 
    12181218         ENDIF 
     
    13591359!         hdiv(i1:i2,j1:j2,1:jpkm1)   = e3t(i1:i2,j1:j2,1:jpkm1,Kbb_a) 
    13601360 
    1361          IF (.NOT.(lk_agrif_fstep.AND.(neuler==0) )) THEN 
     1361         IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler) )) THEN 
    13621362            DO jk = 1, jpkm1 
    13631363               DO jj=j1,j2 
    13641364                  DO ji=i1,i2 
    13651365                     e3t(ji,jj,jk,Kbb_a) =  e3t(ji,jj,jk,Kbb_a) & 
    1366                            & + atfp * ( ptab(ji,jj,jk) - e3t(ji,jj,jk,Kmm_a) ) 
     1366                           & + rn_atfp * ( ptab(ji,jj,jk) - e3t(ji,jj,jk,Kmm_a) ) 
    13671367                  END DO 
    13681368               END DO 
     
    14221422         END DO 
    14231423         ! 
    1424          IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     1424         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    14251425            e3t (i1:i2,j1:j2,1:jpk,Kbb_a)  = e3t (i1:i2,j1:j2,1:jpk,Kmm_a) 
    14261426            e3w (i1:i2,j1:j2,1:jpk,Kbb_a)  = e3w (i1:i2,j1:j2,1:jpk,Kmm_a) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/NST/agrif_top_sponge.F90

    r12377 r12495  
    137137 
    138138         !* set relaxation time scale 
    139          IF( neuler == 0 .AND. lk_agrif_fstep ) THEN   ;   ztrelax =   rn_trelax_tra  / (        rdt ) 
    140          ELSE                                          ;   ztrelax =   rn_trelax_tra  / (2._wp * rdt ) 
     139         IF( l_1st_euler .AND. lk_agrif_fstep ) THEN   ;   ztrelax =   rn_trelax_tra  / (        rn_Dt ) 
     140         ELSE                                          ;   ztrelax =   rn_trelax_tra  / (2._wp * rn_Dt ) 
    141141         ENDIF 
    142142 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/NST/agrif_top_update.F90

    r12377 r12495  
    125125         ENDDO 
    126126         ! 
    127          IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN 
     127         IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN 
    128128            ! Add asselin part 
    129129            DO jn = 1,jptra 
     
    135135                           ztnu = tabres_child(ji,jj,jk,jn) * e3t(ji,jj,jk,Kmm_a) 
    136136                           ztno = tr(ji,jj,jk,jn,Kmm_a) * e3t(ji,jj,jk,Krhs_a) 
    137                            tr(ji,jj,jk,jn,Kbb_a) = ( ztb + atfp * ( ztnu - ztno) )  &  
     137                           tr(ji,jj,jk,jn,Kbb_a) = ( ztb + rn_atfp * ( ztnu - ztno) )  &  
    138138                                     &        * tmask(ji,jj,jk) / e3t(ji,jj,jk,Kbb_a) 
    139139                        ENDIF 
     
    155155         END DO 
    156156         ! 
    157          IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     157         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    158158            tr(i1:i2,j1:j2,1:jpkm1,1:jptra,Kbb_a)  = tr(i1:i2,j1:j2,1:jpkm1,1:jptra,Kmm_a) 
    159159         ENDIF 
     
    199199         ENDDO 
    200200!< jc tmp 
    201          IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN 
     201         IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN 
    202202            ! Add asselin part 
    203203            DO jn = n1,n2 
     
    209209                           ztnu = tabres(ji,jj,jk,jn) 
    210210                           ztno = tr(ji,jj,jk,jn,Kmm_a) * e3t(ji,jj,jk,Krhs_a) 
    211                            tr(ji,jj,jk,jn,Kbb_a) = ( ztb + atfp * ( ztnu - ztno) )  &  
     211                           tr(ji,jj,jk,jn,Kbb_a) = ( ztb + rn_atfp * ( ztnu - ztno) )  &  
    212212                                     &        * tmask(ji,jj,jk) / e3t(ji,jj,jk,Kbb_a) 
    213213                        ENDIF 
     
    229229         END DO 
    230230         ! 
    231          IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     231         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    232232            tr(i1:i2,j1:j2,k1:k2,n1:n2,Kbb_a)  = tr(i1:i2,j1:j2,k1:k2,n1:n2,Kmm_a) 
    233233         ENDIF 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/NST/agrif_user.F90

    r12377 r12495  
    202202 
    203203         ! Check time steps            
    204          IF( NINT(Agrif_Rhot()) * NINT(rdt) .NE. Agrif_Parent(rdt) ) THEN 
    205             WRITE(cl_check1,*)  NINT(Agrif_Parent(rdt)) 
    206             WRITE(cl_check2,*)  NINT(rdt) 
    207             WRITE(cl_check3,*)  NINT(Agrif_Parent(rdt)/Agrif_Rhot()) 
     204         IF( NINT(Agrif_Rhot()) * NINT(rn_Dt) .NE. Agrif_Parent(rn_Dt) ) THEN 
     205            WRITE(cl_check1,*)  NINT(Agrif_Parent(rn_Dt)) 
     206            WRITE(cl_check2,*)  NINT(rn_Dt) 
     207            WRITE(cl_check3,*)  NINT(Agrif_Parent(rn_Dt)/Agrif_Rhot()) 
    208208            CALL ctl_stop( 'Incompatible time step between ocean grids',   & 
    209209                  &               'parent grid value : '//cl_check1    ,   &  
     
    613613      IF( check_namelist ) THEN 
    614614         ! Check time steps 
    615       IF( NINT(Agrif_Rhot()) * NINT(rdt) .NE. Agrif_Parent(rdt) ) THEN 
    616          WRITE(cl_check1,*)  Agrif_Parent(rdt) 
    617          WRITE(cl_check2,*)  rdt 
    618          WRITE(cl_check3,*)  rdt*Agrif_Rhot() 
     615      IF( NINT(Agrif_Rhot()) * NINT(rn_Dt) .NE. Agrif_Parent(rn_Dt) ) THEN 
     616         WRITE(cl_check1,*)  Agrif_Parent(rn_Dt) 
     617         WRITE(cl_check2,*)  rn_Dt 
     618         WRITE(cl_check3,*)  rn_Dt*Agrif_Rhot() 
    619619         CALL ctl_stop( 'incompatible time step between grids',   & 
    620620               &               'parent grid value : '//cl_check1    ,   &  
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/ASM/asminc.F90

    r12377 r12495  
    487487      ENDIF 
    488488      ! 
    489       IF(lwp) WRITE(numout,*) '   ==>>>   Euler time step switch is ', neuler 
     489      IF(lwp) WRITE(numout,*) '   ==>>>   Euler time step switch is ', l_1st_euler 
    490490      ! 
    491491      IF( lk_asminc ) THEN                            !==  data assimilation  ==! 
     
    534534            ! 
    535535            it = kt - nit000 + 1 
    536             zincwgt = wgtiau(it) / rdt   ! IAU weight for the current time step 
     536            zincwgt = wgtiau(it) / rn_Dt   ! IAU weight for the current time step 
    537537            ! 
    538538            IF(lwp) THEN 
     
    577577         IF ( kt == nitdin_r ) THEN 
    578578            ! 
    579             neuler = 0  ! Force Euler forward step 
     579            l_1st_euler = .TRUE.  ! Force Euler forward step 
    580580            ! 
    581581            ! Initialize the now fields with the background + increment 
     
    651651            ! 
    652652            it = kt - nit000 + 1 
    653             zincwgt = wgtiau(it) / rdt   ! IAU weight for the current time step 
     653            zincwgt = wgtiau(it) / rn_Dt   ! IAU weight for the current time step 
    654654            ! 
    655655            IF(lwp) THEN 
     
    677677         IF ( kt == nitdin_r ) THEN 
    678678            ! 
    679             neuler = 0                    ! Force Euler forward step 
     679            l_1st_euler = .TRUE.                    ! Force Euler forward step 
    680680            ! 
    681681            ! Initialize the now fields with the background + increment 
     
    722722            ! 
    723723            it = kt - nit000 + 1 
    724             zincwgt = wgtiau(it) / rdt   ! IAU weight for the current time step 
     724            zincwgt = wgtiau(it) / rn_Dt   ! IAU weight for the current time step 
    725725            ! 
    726726            IF(lwp) THEN 
     
    753753         IF ( kt == nitdin_r ) THEN 
    754754            ! 
    755             neuler = 0                                   ! Force Euler forward step 
     755            l_1st_euler = .TRUE.                            ! Force Euler forward step 
    756756            ! 
    757757            ssh(:,:,Kmm) = ssh_bkg(:,:) + ssh_bkginc(:,:)   ! Initialize the now fields the background + increment 
     
    841841            it = kt - nit000 + 1 
    842842            zincwgt = wgtiau(it)      ! IAU weight for the current time step  
    843             ! note this is not a tendency so should not be divided by rdt (as with the tracer and other increments) 
     843            ! note this is not a tendency so should not be divided by rn_Dt (as with the tracer and other increments) 
    844844            ! 
    845845            IF(lwp) THEN 
     
    876876#if defined key_cice && defined key_asminc 
    877877            ! Sea-ice : CICE case. Pass ice increment tendency into CICE 
    878             ndaice_da(:,:) = seaice_bkginc(:,:) * zincwgt / rdt 
     878            ndaice_da(:,:) = seaice_bkginc(:,:) * zincwgt / rn_Dt 
    879879#endif 
    880880            ! 
     
    896896         IF ( kt == nitdin_r ) THEN 
    897897            ! 
    898             neuler = 0                    ! Force Euler forward step 
     898            l_1st_euler = 0              ! Force Euler forward step 
    899899            ! 
    900900            ! Sea-ice : SI3 case 
     
    926926#if defined key_cice && defined key_asminc 
    927927            ! Sea-ice : CICE case. Pass ice increment tendency into CICE 
    928            ndaice_da(:,:) = seaice_bkginc(:,:) / rdt 
     928           ndaice_da(:,:) = seaice_bkginc(:,:) / rn_Dt 
    929929#endif 
    930930            IF ( .NOT. PRESENT(kindic) ) THEN 
     
    959959!           ! fwf : ice formation and melting 
    960960! 
    961 !                 zfons = ( -nfresh_da(ji,jj)*soce + nfsalt_da(ji,jj) )*rdt 
     961!                 zfons = ( -nfresh_da(ji,jj)*soce + nfsalt_da(ji,jj) )*rn_Dt 
    962962! 
    963963!           ! change salinity down to mixed layer depth 
     
    10001000! 
    10011001!      !            !  salt exchanges at the ice/ocean interface 
    1002 !      !            zpmess         = zfons / rdt_ice    ! rdt_ice is ice timestep 
     1002!      !            zpmess         = zfons / rDt_ice    ! rDt_ice is ice timestep 
    10031003!      ! 
    10041004!      !! Adjust fsalt. A +ve fsalt means adding salt to ocean 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/BDY/bdyice.F90

    r11536 r12495  
    179179 
    180180            ! Then, a) transfer the snow excess into the ice (different from icethd_dh) 
    181             zdh = MAX( 0._wp, ( rhos * h_s(ji,jj,jl) + ( rhoi - rau0 ) * h_i(ji,jj,jl) ) * r1_rau0 ) 
     181            zdh = MAX( 0._wp, ( rhos * h_s(ji,jj,jl) + ( rhoi - rho0 ) * h_i(ji,jj,jl) ) * r1_rho0 ) 
    182182            ! Or, b) transfer all the snow into ice (if incoming ice is likely to melt as it comes into a warmer environment) 
    183183            !zdh = MAX( 0._wp, h_s(ji,jj,jl) * rhos / rhoi ) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/BDY/bdylib.F90

    r12377 r12495  
    240240         ! Centred derivative is calculated as average of "left" and "right" derivatives for  
    241241         ! this reason.  
    242          ! Note no rdt factor in expression for zdt because it cancels in the expressions for  
     242         ! Note no rn_Dt factor in expression for zdt because it cancels in the expressions for  
    243243         ! zrx and zry. 
    244244         zdt   =     phia(iibm1   ,ijbm1   ) - phib(iibm1   ,ijbm1   ) 
     
    259259         zout = sign( 1., zrx ) 
    260260         zout = 0.5*( zout + abs(zout) ) 
    261          zwgt = 2.*rdt*( (1.-zout) * idx%nbd(jb,igrd) + zout * idx%nbdout(jb,igrd) ) 
     261         zwgt = 2.*rn_Dt*( (1.-zout) * idx%nbd(jb,igrd) + zout * idx%nbdout(jb,igrd) ) 
    262262         ! only apply radiation on outflow points  
    263263         if( ll_npo ) then     !! NPO version !! 
     
    425425            zout = sign( 1., zrx ) 
    426426            zout = 0.5*( zout + abs(zout) ) 
    427             zwgt = 2.*rdt*( (1.-zout) * idx%nbd(jb,igrd) + zout * idx%nbdout(jb,igrd) ) 
     427            zwgt = 2.*rn_Dt*( (1.-zout) * idx%nbd(jb,igrd) + zout * idx%nbdout(jb,igrd) ) 
    428428            ! only apply radiation on outflow points  
    429429            if( ll_npo ) then     !! NPO version !! 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/BDY/bdytides.F90

    r12377 r12495  
    297297      ! Absolute time from model initialization:    
    298298      IF( PRESENT(kit) ) THEN   
    299          z_arg = ( REAL(kt, wp) + ( REAL(kit, wp) + zt_offset - 1. ) / REAL(nn_baro, wp) ) * rdt 
     299         z_arg = ( REAL(kt, wp) + ( REAL(kit, wp) + zt_offset - 1. ) / REAL(nn_e, wp) ) * rn_Dt 
    300300      ELSE                               
    301          z_arg = ( REAL(kt, wp) + zt_offset ) * rdt 
     301         z_arg = ( REAL(kt, wp) + zt_offset ) * rn_Dt 
    302302      ENDIF 
    303303 
    304304      ! Linear ramp on tidal component at open boundaries  
    305305      zramp = 1. 
    306       IF (ln_tide_ramp) zramp = MIN(MAX( (z_arg - REAL(nit000,wp)*rdt)/(rn_tide_ramp_dt*rday),0.),1.) 
     306      IF (ln_tide_ramp) zramp = MIN(MAX( (z_arg - REAL(nit000,wp)*rn_Dt)/(rn_tide_ramp_dt*rday),0.),1.) 
    307307 
    308308      DO ib_bdy = 1,nb_bdy 
     
    319319            ! We refresh nodal factors every day below 
    320320            ! This should be done somewhere else 
    321             IF ( ( nsec_day == NINT(0.5_wp * rdt) .OR. kt==nit000 ) .AND. lk_first_btstp ) THEN 
    322                ! 
    323                kt_tide = kt - NINT((REAL(nsec_day,wp) - 0.5_wp * rdt)/rdt) 
     321            IF ( ( nsec_day == NINT(0.5_wp * rn_Dt) .OR. kt==nit000 ) .AND. lk_first_btstp ) THEN 
     322               ! 
     323               kt_tide = kt - NINT((REAL(nsec_day,wp) - 0.5_wp * rn_Dt)/rn_Dt) 
    324324               ! 
    325325               IF(lwp) THEN 
     
    333333               ! 
    334334            ENDIF 
    335             zoff = REAL(-kt_tide,wp) * rdt ! time offset relative to nodal factor computation time 
     335            zoff = REAL(-kt_tide,wp) * rn_Dt ! time offset relative to nodal factor computation time 
    336336            ! 
    337337            ! If time splitting, initialize arrays from slow varying open boundary data: 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/BDY/bdyvol.F90

    r12377 r12495  
    7777      ! Calculate the cumulate surface Flux z_cflxemp (m3/s) over all the domain 
    7878      ! ----------------------------------------------------------------------- 
    79       IF ( kc == 1 ) z_cflxemp = glob_sum( 'bdyvol', ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) ) * bdytmask(:,:) * e1e2t(:,:)  ) / rau0 
     79      IF ( kc == 1 ) z_cflxemp = glob_sum( 'bdyvol', ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) ) * bdytmask(:,:) * e1e2t(:,:)  ) / rho0 
    8080 
    8181      ! Compute bdy surface each cycle if non linear free surface 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DIA/dia25h.F90

    r12377 r12495  
    140140      ! ----------------- 
    141141      ! Define frequency of summing to create 25 h mean 
    142       IF( MOD( 3600,NINT(rdt) ) == 0 ) THEN 
    143          i_steps = 3600/NINT(rdt) 
     142      IF( MOD( 3600,NINT(rn_Dt) ) == 0 ) THEN 
     143         i_steps = 3600/NINT(rn_Dt) 
    144144      ELSE 
    145          CALL ctl_stop('STOP', 'dia_wri_tide: timestep must give MOD(3600,rdt) = 0 otherwise no hourly values are possible') 
     145         CALL ctl_stop('STOP', 'dia_wri_tide: timestep must give MOD(3600,rn_Dt) = 0 otherwise no hourly values are possible') 
    146146      ENDIF 
    147147 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DIA/diaar5.F90

    r12377 r12495  
    103103         END DO 
    104104         CALL iom_put( 'volcello'  , zrhd(:,:,:)  )  ! WARNING not consistent with CMIP DR where volcello is at ca. 2000 
    105          CALL iom_put( 'masscello' , rau0 * e3t(:,:,:,Kmm) * tmask(:,:,:) )  ! ocean mass 
     105         CALL iom_put( 'masscello' , rho0 * e3t(:,:,:,Kmm) * tmask(:,:,:) )  ! ocean mass 
    106106      ENDIF  
    107107      ! 
     
    181181         CALL iom_put( 'sshsteric', zssh_steric ) 
    182182         !                                         ! ocean bottom pressure 
    183          zztmp = rau0 * grav * 1.e-4_wp               ! recover pressure from pressure anomaly and cover to dbar = 1.e4 Pa 
     183         zztmp = rho0 * grav * 1.e-4_wp               ! recover pressure from pressure anomaly and cover to dbar = 1.e4 Pa 
    184184         zbotpres(:,:) = zztmp * ( zbotpres(:,:) + ssh(:,:,Kmm) + thick0(:,:) ) 
    185185         CALL iom_put( 'botpres', zbotpres ) 
     
    213213         ztemp = glob_sum( 'diaar5', ztsn(:,:,1,jp_tem) ) 
    214214         zsal  = glob_sum( 'diaar5', ztsn(:,:,1,jp_sal) ) 
    215          zmass = rau0 * ( zarho + zvol )       
     215         zmass = rho0 * ( zarho + zvol )       
    216216         ! 
    217217         CALL iom_put( 'masstot', zmass ) 
     
    251251               z2d(:,:) = 0._wp 
    252252               DO_3D_11_11( 1, jpkm1 ) 
    253                   z2d(ji,jj) = z2d(ji,jj) + rau0 * e3t(ji,jj,jk,Kmm) *  ztpot(ji,jj,jk) 
     253                  z2d(ji,jj) = z2d(ji,jj) + rho0 * e3t(ji,jj,jk,Kmm) *  ztpot(ji,jj,jk) 
    254254               END_3D 
    255255               CALL iom_put( 'tosmint_pot', z2d )  
     
    285285          ELSE 
    286286            DO_3D_11_11( 1, jpk ) 
    287                zpe(ji,jj) = zpe(ji,jj) + avt(ji,jj,jk) * MIN(0._wp,rn2(ji,jj,jk)) * rau0 * e3w(ji,jj,jk,Kmm) 
     287               zpe(ji,jj) = zpe(ji,jj) + avt(ji,jj,jk) * MIN(0._wp,rn2(ji,jj,jk)) * rho0 * e3w(ji,jj,jk,Kmm) 
    288288            END_3D 
    289289         ENDIF 
     
    325325       CALL lbc_lnk( 'diaar5', z2d, 'U', -1. ) 
    326326       IF( cptr == 'adv' ) THEN 
    327           IF( ktra == jp_tem ) CALL iom_put( 'uadv_heattr' , rau0_rcp * z2d )  ! advective heat transport in i-direction 
    328           IF( ktra == jp_sal ) CALL iom_put( 'uadv_salttr' , rau0     * z2d )  ! advective salt transport in i-direction 
     327          IF( ktra == jp_tem ) CALL iom_put( 'uadv_heattr' , rho0_rcp * z2d )  ! advective heat transport in i-direction 
     328          IF( ktra == jp_sal ) CALL iom_put( 'uadv_salttr' , rho0     * z2d )  ! advective salt transport in i-direction 
    329329       ENDIF 
    330330       IF( cptr == 'ldf' ) THEN 
    331           IF( ktra == jp_tem ) CALL iom_put( 'udiff_heattr' , rau0_rcp * z2d ) ! diffusive heat transport in i-direction 
    332           IF( ktra == jp_sal ) CALL iom_put( 'udiff_salttr' , rau0     * z2d ) ! diffusive salt transport in i-direction 
     331          IF( ktra == jp_tem ) CALL iom_put( 'udiff_heattr' , rho0_rcp * z2d ) ! diffusive heat transport in i-direction 
     332          IF( ktra == jp_sal ) CALL iom_put( 'udiff_salttr' , rho0     * z2d ) ! diffusive salt transport in i-direction 
    333333       ENDIF 
    334334       ! 
     
    339339       CALL lbc_lnk( 'diaar5', z2d, 'V', -1. ) 
    340340       IF( cptr == 'adv' ) THEN 
    341           IF( ktra == jp_tem ) CALL iom_put( 'vadv_heattr' , rau0_rcp * z2d )  ! advective heat transport in j-direction 
    342           IF( ktra == jp_sal ) CALL iom_put( 'vadv_salttr' , rau0     * z2d )  ! advective salt transport in j-direction 
     341          IF( ktra == jp_tem ) CALL iom_put( 'vadv_heattr' , rho0_rcp * z2d )  ! advective heat transport in j-direction 
     342          IF( ktra == jp_sal ) CALL iom_put( 'vadv_salttr' , rho0     * z2d )  ! advective salt transport in j-direction 
    343343       ENDIF 
    344344       IF( cptr == 'ldf' ) THEN 
    345           IF( ktra == jp_tem ) CALL iom_put( 'vdiff_heattr' , rau0_rcp * z2d ) ! diffusive heat transport in j-direction 
    346           IF( ktra == jp_sal ) CALL iom_put( 'vdiff_salttr' , rau0     * z2d ) ! diffusive salt transport in j-direction 
     345          IF( ktra == jp_tem ) CALL iom_put( 'vdiff_heattr' , rho0_rcp * z2d ) ! diffusive heat transport in j-direction 
     346          IF( ktra == jp_sal ) CALL iom_put( 'vdiff_salttr' , rho0     * z2d ) ! diffusive salt transport in j-direction 
    347347       ENDIF 
    348348           
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DIA/diacfl.F90

    r12377 r12495  
    5252      ! 
    5353      INTEGER                          ::   ji, jj, jk                       ! dummy loop indices 
    54       REAL(wp)                         ::   z2dt, zCu_max, zCv_max, zCw_max  ! local scalars 
     54      REAL(wp)                         ::   zCu_max, zCv_max, zCw_max        ! local scalars 
    5555      INTEGER , DIMENSION(3)           ::   iloc_u , iloc_v , iloc_w , iloc  ! workspace 
    5656      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zCu_cfl, zCv_cfl, zCw_cfl        ! workspace 
     
    5959      IF( ln_timing )   CALL timing_start('dia_cfl') 
    6060      ! 
    61       !                       ! setup timestep multiplier to account for initial Eulerian timestep 
    62       IF( neuler == 0 .AND. kt == nit000 ) THEN   ;    z2dt = rdt 
    63       ELSE                                        ;    z2dt = rdt * 2._wp 
    64       ENDIF 
    65       ! 
    66       !                 
    6761      DO_3D_11_11( 1, jpk ) 
    68          zCu_cfl(ji,jj,jk) = ABS( uu(ji,jj,jk,Kmm) ) * z2dt / e1u  (ji,jj)      ! for i-direction 
    69          zCv_cfl(ji,jj,jk) = ABS( vv(ji,jj,jk,Kmm) ) * z2dt / e2v  (ji,jj)      ! for j-direction 
    70          zCw_cfl(ji,jj,jk) = ABS( ww(ji,jj,jk) ) * z2dt / e3w(ji,jj,jk,Kmm)   ! for k-direction 
     62         zCu_cfl(ji,jj,jk) = ABS( uu(ji,jj,jk,Kmm) ) * rDt / e1u  (ji,jj)      ! for i-direction 
     63         zCv_cfl(ji,jj,jk) = ABS( vv(ji,jj,jk,Kmm) ) * rDt / e2v  (ji,jj)      ! for j-direction 
     64         zCw_cfl(ji,jj,jk) = ABS( ww(ji,jj,jk) ) * rDt / e3w(ji,jj,jk,Kmm)   ! for k-direction 
    7165      END_3D 
    7266      ! 
     
    118112         WRITE(numcfl,*) '******************************************' 
    119113         WRITE(numcfl,FMT='(3x,a12,6x,f7.4,1x,i4,1x,i4,1x,i4)') 'Run Max Cu', rCu_max, nCu_loc(1), nCu_loc(2), nCu_loc(3) 
    120          WRITE(numcfl,FMT='(3x,a8,11x,f15.1)') ' => dt/C', z2dt/rCu_max 
     114         WRITE(numcfl,FMT='(3x,a8,11x,f15.1)') ' => dt/C', rDt/rCu_max 
    121115         WRITE(numcfl,*) '******************************************' 
    122116         WRITE(numcfl,FMT='(3x,a12,6x,f7.4,1x,i4,1x,i4,1x,i4)') 'Run Max Cv', rCv_max, nCv_loc(1), nCv_loc(2), nCv_loc(3) 
    123          WRITE(numcfl,FMT='(3x,a8,11x,f15.1)') ' => dt/C', z2dt/rCv_max 
     117         WRITE(numcfl,FMT='(3x,a8,11x,f15.1)') ' => dt/C', rDt/rCv_max 
    124118         WRITE(numcfl,*) '******************************************' 
    125119         WRITE(numcfl,FMT='(3x,a12,6x,f7.4,1x,i4,1x,i4,1x,i4)') 'Run Max Cw', rCw_max, nCw_loc(1), nCw_loc(2), nCw_loc(3) 
    126          WRITE(numcfl,FMT='(3x,a8,11x,f15.1)') ' => dt/C', z2dt/rCw_max 
     120         WRITE(numcfl,FMT='(3x,a8,11x,f15.1)') ' => dt/C', rDt/rCw_max 
    127121         CLOSE( numcfl )  
    128122         ! 
     
    131125         WRITE(numout,*) 'dia_cfl : Maximum Courant number information for the run ' 
    132126         WRITE(numout,*) '~~~~~~~' 
    133          WRITE(numout,*) '   Max Cu = ', rCu_max, ' at (i,j,k) = (',nCu_loc(1),nCu_loc(2),nCu_loc(3),') => dt/C = ', z2dt/rCu_max 
    134          WRITE(numout,*) '   Max Cv = ', rCv_max, ' at (i,j,k) = (',nCv_loc(1),nCv_loc(2),nCv_loc(3),') => dt/C = ', z2dt/rCv_max 
    135          WRITE(numout,*) '   Max Cw = ', rCw_max, ' at (i,j,k) = (',nCw_loc(1),nCw_loc(2),nCw_loc(3),') => dt/C = ', z2dt/rCw_max 
     127         WRITE(numout,*) '   Max Cu = ', rCu_max, ' at (i,j,k) = (',nCu_loc(1),nCu_loc(2),nCu_loc(3),') => dt/C = ', rDt/rCu_max 
     128         WRITE(numout,*) '   Max Cv = ', rCv_max, ' at (i,j,k) = (',nCv_loc(1),nCv_loc(2),nCv_loc(3),') => dt/C = ', rDt/rCv_max 
     129         WRITE(numout,*) '   Max Cw = ', rCw_max, ' at (i,j,k) = (',nCw_loc(1),nCw_loc(2),nCw_loc(3),') => dt/C = ', rDt/rCw_max 
    136130      ENDIF 
    137131      ! 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DIA/diadct.F90

    r12377 r12495  
    676676                  zsn   = interp(Kmm,k%I,k%J,jk,'V',ts(:,:,:,jp_sal,Kmm) )  
    677677                  zrhop = interp(Kmm,k%I,k%J,jk,'V',rhop)  
    678                   zrhoi = interp(Kmm,k%I,k%J,jk,'V',rhd*rau0+rau0)  
     678                  zrhoi = interp(Kmm,k%I,k%J,jk,'V',rhd*rho0+rho0)  
    679679                  zsshn =  0.5*( ssh(k%I,k%J,Kmm) + ssh(k%I,k%J+1,Kmm)    ) * vmask(k%I,k%J,1)  
    680680               CASE(2,3)  
     
    682682                  zsn   = interp(Kmm,k%I,k%J,jk,'U',ts(:,:,:,jp_sal,Kmm) )  
    683683                  zrhop = interp(Kmm,k%I,k%J,jk,'U',rhop)  
    684                   zrhoi = interp(Kmm,k%I,k%J,jk,'U',rhd*rau0+rau0)  
     684                  zrhoi = interp(Kmm,k%I,k%J,jk,'U',rhd*rho0+rho0)  
    685685                  zsshn =  0.5*( ssh(k%I,k%J,Kmm) + ssh(k%I+1,k%J,Kmm)    ) * umask(k%I,k%J,1)   
    686686               END SELECT  
     
    849849                 zsn   = interp(Kmm,k%I,k%J,jk,'V',ts(:,:,:,jp_sal,Kmm) )  
    850850                 zrhop = interp(Kmm,k%I,k%J,jk,'V',rhop)  
    851                  zrhoi = interp(Kmm,k%I,k%J,jk,'V',rhd*rau0+rau0)  
     851                 zrhoi = interp(Kmm,k%I,k%J,jk,'V',rhd*rho0+rho0)  
    852852 
    853853              CASE(2,3)  
     
    855855                 zsn   = interp(Kmm,k%I,k%J,jk,'U',ts(:,:,:,jp_sal,Kmm) )  
    856856                 zrhop = interp(Kmm,k%I,k%J,jk,'U',rhop)  
    857                  zrhoi = interp(Kmm,k%I,k%J,jk,'U',rhd*rau0+rau0)  
     857                 zrhoi = interp(Kmm,k%I,k%J,jk,'U',rhd*rho0+rho0)  
    858858                 zsshn =  0.5*( ssh(k%I,k%J,Kmm)    + ssh(k%I+1,k%J,Kmm)    ) * umask(k%I,k%J,1)   
    859859              END SELECT  
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DIA/diadetide.F90

    r12377 r12495  
    99   USE in_out_manager , ONLY :   lwp, numout 
    1010   USE iom            , ONLY :   iom_put 
    11    USE dom_oce        , ONLY :   rdt, nsec_day 
     11   USE dom_oce        , ONLY :   rn_Dt, nsec_day 
    1212   USE phycst         , ONLY :   rpi 
    1313   USE tide_mod 
     
    100100      zwght = 0.0_wp 
    101101      DO jn = 1, ndiadetide 
    102          ztmp = ( tdiadetide(jn) - REAL( nsec_day, KIND=wp ) ) / rdt 
     102         ztmp = ( tdiadetide(jn) - REAL( nsec_day, KIND=wp ) ) / rn_Dt 
    103103         IF ( ( ztmp < 0.5_wp ).AND.( ztmp >= -0.5_wp ) ) THEN 
    104104            zwght = zwght + 1.0_wp / REAL( ndiadetide, KIND=wp ) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DIA/diahsb.F90

    r12377 r12495  
    9191      ! 1 - Trends due to forcing ! 
    9292      ! ------------------------- ! 
    93       z_frc_trd_v = r1_rau0 * glob_sum( 'diahsb', - ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) ) * surf(:,:) )   ! volume fluxes 
     93      z_frc_trd_v = r1_rho0 * glob_sum( 'diahsb', - ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) ) * surf(:,:) )   ! volume fluxes 
    9494      z_frc_trd_t =           glob_sum( 'diahsb', sbc_tsc(:,:,jp_tem) * surf(:,:) )                       ! heat fluxes 
    9595      z_frc_trd_s =           glob_sum( 'diahsb', sbc_tsc(:,:,jp_sal) * surf(:,:) )                       ! salt fluxes 
     
    101101         &                          + glob_sum( 'diahsb', ( risf_cav_tsc(:,:,jp_tem) + risf_par_tsc(:,:,jp_tem) ) * surf(:,:) ) 
    102102      !                    ! Add penetrative solar radiation 
    103       IF( ln_traqsr )   z_frc_trd_t = z_frc_trd_t + r1_rau0_rcp * glob_sum( 'diahsb', qsr     (:,:) * surf(:,:) ) 
     103      IF( ln_traqsr )   z_frc_trd_t = z_frc_trd_t + r1_rho0_rcp * glob_sum( 'diahsb', qsr     (:,:) * surf(:,:) ) 
    104104      !                    ! Add geothermal heat flux 
    105105      IF( ln_trabbc )   z_frc_trd_t = z_frc_trd_t +               glob_sum( 'diahsb', qgh_trd0(:,:) * surf(:,:) ) 
     
    121121      ENDIF 
    122122 
    123       frc_v = frc_v + z_frc_trd_v * rdt 
    124       frc_t = frc_t + z_frc_trd_t * rdt 
    125       frc_s = frc_s + z_frc_trd_s * rdt 
     123      frc_v = frc_v + z_frc_trd_v * rn_Dt 
     124      frc_t = frc_t + z_frc_trd_t * rn_Dt 
     125      frc_s = frc_s + z_frc_trd_s * rn_Dt 
    126126      !                                          ! Advection flux through fixed surface (z=0) 
    127127      IF( ln_linssh ) THEN 
    128          frc_wn_t = frc_wn_t + z_wn_trd_t * rdt 
    129          frc_wn_s = frc_wn_s + z_wn_trd_s * rdt 
     128         frc_wn_t = frc_wn_t + z_wn_trd_t * rn_Dt 
     129         frc_wn_s = frc_wn_s + z_wn_trd_s * rn_Dt 
    130130      ENDIF 
    131131 
     
    197197 
    198198      CALL iom_put(   'bgfrcvol' , frc_v    * 1.e-9    )              ! vol - surface forcing (km3)  
    199       CALL iom_put(   'bgfrctem' , frc_t    * rau0 * rcp * 1.e-20 )   ! hc  - surface forcing (1.e20 J)  
    200       CALL iom_put(   'bgfrchfx' , frc_t    * rau0 * rcp /  &         ! hc  - surface forcing (W/m2)  
    201          &                       ( surf_tot * kt * rdt )        ) 
     199      CALL iom_put(   'bgfrctem' , frc_t    * rho0 * rcp * 1.e-20 )   ! hc  - surface forcing (1.e20 J)  
     200      CALL iom_put(   'bgfrchfx' , frc_t    * rho0 * rcp /  &         ! hc  - surface forcing (W/m2)  
     201         &                       ( surf_tot * kt * rn_Dt )        ) 
    202202      CALL iom_put(   'bgfrcsal' , frc_s    * 1.e-9    )              ! sc  - surface forcing (psu*km3)  
    203203 
     
    205205         CALL iom_put( 'bgtemper' , zdiff_hc / zvol_tot )              ! Temperature drift     (C)  
    206206         CALL iom_put( 'bgsaline' , zdiff_sc / zvol_tot )              ! Salinity    drift     (PSU) 
    207          CALL iom_put( 'bgheatco' , zdiff_hc * 1.e-20 * rau0 * rcp )   ! Heat content drift    (1.e20 J)  
    208          CALL iom_put( 'bgheatfx' , zdiff_hc * rau0 * rcp /  &         ! Heat flux drift       (W/m2)  
    209             &                       ( surf_tot * kt * rdt )        ) 
     207         CALL iom_put( 'bgheatco' , zdiff_hc * 1.e-20 * rho0 * rcp )   ! Heat content drift    (1.e20 J)  
     208         CALL iom_put( 'bgheatfx' , zdiff_hc * rho0 * rcp /  &         ! Heat flux drift       (W/m2)  
     209            &                       ( surf_tot * kt * rn_Dt )        ) 
    210210         CALL iom_put( 'bgsaltco' , zdiff_sc * 1.e-9    )              ! Salt content drift    (psu*km3) 
    211211         CALL iom_put( 'bgvolssh' , zdiff_v1 * 1.e-9    )              ! volume ssh drift      (km3)   
     
    225225         CALL iom_put( 'bgtemper' , zdiff_hc1 / zvol_tot)              ! Heat content drift    (C)  
    226226         CALL iom_put( 'bgsaline' , zdiff_sc1 / zvol_tot)              ! Salt content drift    (PSU) 
    227          CALL iom_put( 'bgheatco' , zdiff_hc1 * 1.e-20 * rau0 * rcp )  ! Heat content drift    (1.e20 J)  
    228          CALL iom_put( 'bgheatfx' , zdiff_hc1 * rau0 * rcp /  &        ! Heat flux drift       (W/m2)  
    229             &                       ( surf_tot * kt * rdt )         ) 
     227         CALL iom_put( 'bgheatco' , zdiff_hc1 * 1.e-20 * rho0 * rcp )  ! Heat content drift    (1.e20 J)  
     228         CALL iom_put( 'bgheatfx' , zdiff_hc1 * rho0 * rcp /  &        ! Heat flux drift       (W/m2)  
     229            &                       ( surf_tot * kt * rn_Dt )         ) 
    230230         CALL iom_put( 'bgsaltco' , zdiff_sc1 * 1.e-9    )             ! Salt content drift    (psu*km3) 
    231231         CALL iom_put( 'bgvolssh' , zdiff_v1 * 1.e-9    )              ! volume ssh drift      (km3)   
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DIA/diahth.F90

    r12377 r12495  
    261261            zzdep = 300. 
    262262            CALL  dia_hth_htc( Kmm, zzdep, ts(:,:,:,jp_tem,Kmm), htc3 ) 
    263             CALL iom_put( 'hc300', rau0_rcp * htc3 )  ! vertically integrated heat content (J/m2) 
     263            CALL iom_put( 'hc300', rho0_rcp * htc3 )  ! vertically integrated heat content (J/m2) 
    264264         ENDIF 
    265265         ! 
     
    270270            zzdep = 700. 
    271271            CALL  dia_hth_htc( Kmm, zzdep, ts(:,:,:,jp_tem,Kmm), htc7 ) 
    272             CALL iom_put( 'hc700', rau0_rcp * htc7 )  ! vertically integrated heat content (J/m2) 
     272            CALL iom_put( 'hc700', rho0_rcp * htc7 )  ! vertically integrated heat content (J/m2) 
    273273   
    274274         ENDIF 
     
    280280            zzdep = 2000. 
    281281            CALL  dia_hth_htc( Kmm, zzdep, ts(:,:,:,jp_tem,Kmm), htc20 ) 
    282             CALL iom_put( 'hc2000', rau0_rcp * htc20 )  ! vertically integrated heat content (J/m2)   
     282            CALL iom_put( 'hc2000', rho0_rcp * htc20 )  ! vertically integrated heat content (J/m2)   
    283283         ENDIF 
    284284         ! 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DIA/dianam.F90

    r10068 r12495  
    7272 
    7373      IF( llfsec .OR. kfreq < 0 ) THEN   ;   inbsec = kfreq                       ! output frequency already in seconds 
    74       ELSE                               ;   inbsec = kfreq * NINT( rdt )   ! from time-step to seconds 
     74      ELSE                               ;   inbsec = kfreq * NINT( rn_Dt )   ! from time-step to seconds 
    7575      ENDIF 
    7676      iddss = NINT( rday          )                                         ! number of seconds in 1 day 
     
    116116      ! date of the beginning and the end of the run 
    117117 
    118       zdrun = rdt / rday * REAL( nitend - nit000, wp )                ! length of the run in days 
    119       zjul  = fjulday - rdt / rday 
     118      zdrun = rn_Dt / rday * REAL( nitend - nit000, wp )                ! length of the run in days 
     119      zjul  = fjulday - rn_Dt / rday 
    120120      CALL ju2ymds( zjul        , iyear1, imonth1, iday1, zsec1 )           ! year/month/day of the beginning of run 
    121121      CALL ju2ymds( zjul + zdrun, iyear2, imonth2, iday2, zsec2 )           ! year/month/day of the end       of run 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DIA/diaptr.F90

    r12377 r12495  
    5050 
    5151   REAL(wp) ::   rc_sv    = 1.e-6_wp   ! conversion from m3/s to Sverdrup 
    52    REAL(wp) ::   rc_pwatt = 1.e-15_wp  ! conversion from W    to PW (further x rau0 x Cp) 
    53    REAL(wp) ::   rc_ggram = 1.e-9_wp   ! conversion from g    to Gg  (further x rau0) 
     52   REAL(wp) ::   rc_pwatt = 1.e-15_wp  ! conversion from W    to PW (further x rho0 x Cp) 
     53   REAL(wp) ::   rc_ggram = 1.e-9_wp   ! conversion from g    to Gg  (further x rho0) 
    5454 
    5555   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: btmsk   ! T-point basin interior masks 
     
    346346         IF( dia_ptr_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'dia_ptr_init : unable to allocate arrays' ) 
    347347 
    348          rc_pwatt = rc_pwatt * rau0_rcp          ! conversion from K.s-1 to PetaWatt 
    349          rc_ggram = rc_ggram * rau0              ! conversion from m3/s to Gg/s 
     348         rc_pwatt = rc_pwatt * rho0_rcp          ! conversion from K.s-1 to PetaWatt 
     349         rc_ggram = rc_ggram * rho0              ! conversion from m3/s to Gg/s 
    350350 
    351351         IF( lk_mpp )   CALL mpp_ini_znl( numout )     ! Define MPI communicator for zonal sum 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DIA/diawri.F90

    r12377 r12495  
    173173 
    174174      IF ( iom_use("taubot") ) THEN                ! bottom stress 
    175          zztmp = rau0 * 0.25 
     175         zztmp = rho0 * 0.25 
    176176         z2d(:,:) = 0._wp 
    177177         DO_2D_00_00 
     
    212212      IF( iom_use('w_masstr') .OR. iom_use('w_masstr2') ) THEN   ! vertical mass transport & its square value 
    213213         ! Caution: in the VVL case, it only correponds to the baroclinic mass transport. 
    214          z2d(:,:) = rau0 * e1e2t(:,:) 
     214         z2d(:,:) = rho0 * e1e2t(:,:) 
    215215         DO jk = 1, jpk 
    216216            z3d(:,:,jk) = ww(:,:,jk) * z2d(:,:) 
     
    249249            z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) * ts(ji,jj,jk,jp_tem,Kmm) * tmask(ji,jj,jk) 
    250250         END_3D 
    251          CALL iom_put( "heatc", rau0_rcp * z2d )   ! vertically integrated heat content (J/m2) 
     251         CALL iom_put( "heatc", rho0_rcp * z2d )   ! vertically integrated heat content (J/m2) 
    252252      ENDIF 
    253253 
     
    257257            z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) * ts(ji,jj,jk,jp_sal,Kmm) * tmask(ji,jj,jk) 
    258258         END_3D 
    259          CALL iom_put( "saltc", rau0 * z2d )          ! vertically integrated salt content (PSU*kg/m2) 
     259         CALL iom_put( "saltc", rho0 * z2d )          ! vertically integrated salt content (PSU*kg/m2) 
    260260      ENDIF 
    261261      ! 
     
    279279         z2d(:,:) = 0.e0 
    280280         DO jk = 1, jpkm1 
    281             z3d(:,:,jk) = rau0 * uu(:,:,jk,Kmm) * e2u(:,:) * e3u(:,:,jk,Kmm) * umask(:,:,jk) 
     281            z3d(:,:,jk) = rho0 * uu(:,:,jk,Kmm) * e2u(:,:) * e3u(:,:,jk,Kmm) * umask(:,:,jk) 
    282282            z2d(:,:) = z2d(:,:) + z3d(:,:,jk) 
    283283         END DO 
     
    308308         z3d(:,:,jpk) = 0.e0 
    309309         DO jk = 1, jpkm1 
    310             z3d(:,:,jk) = rau0 * vv(:,:,jk,Kmm) * e1v(:,:) * e3v(:,:,jk,Kmm) * vmask(:,:,jk) 
     310            z3d(:,:,jk) = rho0 * vv(:,:,jk,Kmm) * e1v(:,:) * e3v(:,:,jk,Kmm) * vmask(:,:,jk) 
    311311         END DO 
    312312         CALL iom_put( "v_masstr", z3d )              ! mass transport in j-direction 
     
    337337         END_3D 
    338338         CALL lbc_lnk( 'diawri', z2d, 'T', -1. ) 
    339          CALL iom_put( "tosmint", rau0 * z2d )        ! Vertical integral of temperature 
     339         CALL iom_put( "tosmint", rho0 * z2d )        ! Vertical integral of temperature 
    340340      ENDIF 
    341341      IF( iom_use("somint") ) THEN 
     
    345345         END_3D 
    346346         CALL lbc_lnk( 'diawri', z2d, 'T', -1. ) 
    347          CALL iom_put( "somint", rau0 * z2d )         ! Vertical integral of salinity 
     347         CALL iom_put( "somint", rho0 * z2d )         ! Vertical integral of salinity 
    348348      ENDIF 
    349349 
     
    366366      INTEGER, DIMENSION(2) :: ierr 
    367367      !!---------------------------------------------------------------------- 
    368       ierr = 0 
    369       ALLOCATE( ndex_hT(jpi*jpj) , ndex_T(jpi*jpj*jpk) ,     & 
    370          &      ndex_hU(jpi*jpj) , ndex_U(jpi*jpj*jpk) ,     & 
    371          &      ndex_hV(jpi*jpj) , ndex_V(jpi*jpj*jpk) , STAT=ierr(1) ) 
     368      IF( nn_write == -1 ) THEN 
     369         dia_wri_alloc = 0 
     370      ELSE     
     371         ierr = 0 
     372         ALLOCATE( ndex_hT(jpi*jpj) , ndex_T(jpi*jpj*jpk) ,     & 
     373            &      ndex_hU(jpi*jpj) , ndex_U(jpi*jpj*jpk) ,     & 
     374            &      ndex_hV(jpi*jpj) , ndex_V(jpi*jpj*jpk) , STAT=ierr(1) ) 
    372375         ! 
    373      dia_wri_alloc = MAXVAL(ierr) 
    374       CALL mpp_sum( 'diawri', dia_wri_alloc ) 
     376         dia_wri_alloc = MAXVAL(ierr) 
     377         CALL mpp_sum( 'diawri', dia_wri_alloc ) 
     378         ! 
     379      ENDIF 
    375380      ! 
    376381   END FUNCTION dia_wri_alloc 
     
    432437      clop = "x"         ! no use of the mask value (require less cpu time and otherwise the model crashes) 
    433438#if defined key_diainstant 
    434       zsto = nn_write * rdt 
     439      zsto = nn_write * rn_Dt 
    435440      clop = "inst("//TRIM(clop)//")" 
    436441#else 
    437       zsto=rdt 
     442      zsto=rn_Dt 
    438443      clop = "ave("//TRIM(clop)//")" 
    439444#endif 
    440       zout = nn_write * rdt 
    441       zmax = ( nitend - nit000 + 1 ) * rdt 
     445      zout = nn_write * rn_Dt 
     446      zmax = ( nitend - nit000 + 1 ) * rn_Dt 
    442447 
    443448      ! Define indices of the horizontal output zoom and vertical limit storage 
     
    460465 
    461466         ! Compute julian date from starting date of the run 
    462          CALL ymds2ju( nyear, nmonth, nday, rdt, zjulian ) 
     467         CALL ymds2ju( nyear, nmonth, nday, rn_Dt, zjulian ) 
    463468         zjulian = zjulian - adatrj   !   set calendar origin to the beginning of the experiment 
    464469         IF(lwp)WRITE(numout,*) 
     
    482487         CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,           &  ! Horizontal grid: glamt and gphit 
    483488            &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,       & 
    484             &          nit000-1, zjulian, rdt, nh_T, nid_T, domain_id=nidom, snc4chunks=snc4set ) 
     489            &          nit000-1, zjulian, rn_Dt, nh_T, nid_T, domain_id=nidom, snc4chunks=snc4set ) 
    485490         CALL histvert( nid_T, "deptht", "Vertical T levels",      &  ! Vertical grid: gdept 
    486491            &           "m", ipk, gdept_1d, nz_T, "down" ) 
     
    518523         CALL histbeg( clhstnam, jpi, glamu, jpj, gphiu,           &  ! Horizontal grid: glamu and gphiu 
    519524            &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,       & 
    520             &          nit000-1, zjulian, rdt, nh_U, nid_U, domain_id=nidom, snc4chunks=snc4set ) 
     525            &          nit000-1, zjulian, rn_Dt, nh_U, nid_U, domain_id=nidom, snc4chunks=snc4set ) 
    521526         CALL histvert( nid_U, "depthu", "Vertical U levels",      &  ! Vertical grid: gdept 
    522527            &           "m", ipk, gdept_1d, nz_U, "down" ) 
     
    531536         CALL histbeg( clhstnam, jpi, glamv, jpj, gphiv,           &  ! Horizontal grid: glamv and gphiv 
    532537            &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,       & 
    533             &          nit000-1, zjulian, rdt, nh_V, nid_V, domain_id=nidom, snc4chunks=snc4set ) 
     538            &          nit000-1, zjulian, rn_Dt, nh_V, nid_V, domain_id=nidom, snc4chunks=snc4set ) 
    534539         CALL histvert( nid_V, "depthv", "Vertical V levels",      &  ! Vertical grid : gdept 
    535540            &          "m", ipk, gdept_1d, nz_V, "down" ) 
     
    544549         CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,           &  ! Horizontal grid: glamt and gphit 
    545550            &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,       & 
    546             &          nit000-1, zjulian, rdt, nh_W, nid_W, domain_id=nidom, snc4chunks=snc4set ) 
     551            &          nit000-1, zjulian, rn_Dt, nh_W, nid_W, domain_id=nidom, snc4chunks=snc4set ) 
    547552         CALL histvert( nid_W, "depthw", "Vertical W levels",      &  ! Vertical grid: gdepw 
    548553            &          "m", ipk, gdepw_1d, nz_W, "down" ) 
     
    554559            CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,           &  ! Horizontal grid: glamt and gphit 
    555560               &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,       & 
    556                &          nit000-1, zjulian, rdt, nh_A, nid_A, domain_id=nidom, snc4chunks=snc4set ) 
     561               &          nit000-1, zjulian, rn_Dt, nh_A, nid_A, domain_id=nidom, snc4chunks=snc4set ) 
    557562            CALL histvert( nid_A, "ght_abl", "Vertical T levels",      &  ! Vertical grid: gdept 
    558563               &           "m", ipka, ght_abl(2:jpka), nz_A, "up" ) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DIU/diu_coolskin.F90

    r12377 r12495  
    6767 
    6868 
    69    SUBROUTINE diurnal_sst_coolskin_step(psqflux, pstauflux, psrho, rdt) 
     69   SUBROUTINE diurnal_sst_coolskin_step(psqflux, pstauflux, psrho, pDt) 
    7070      !!---------------------------------------------------------------------- 
    7171      !! *** ROUTINE diurnal_sst_takaya_step *** 
     
    8181      REAL(wp), INTENT(IN), DIMENSION(jpi,jpj) :: pstauflux   ! Wind stress (kg/ m s^2) 
    8282      REAL(wp), INTENT(IN), DIMENSION(jpi,jpj) :: psrho       ! Water density (kg/m^3) 
    83       REAL(wp), INTENT(IN) :: rdt                             ! Time-step 
     83      REAL(wp), INTENT(IN) :: pDt                             ! Time-step 
    8484      
    8585      ! Local variables 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DIU/diu_layers.F90

    r12377 r12495  
    3939      ! Cool skin 
    4040 
    41       CALL diurnal_sst_coolskin_step( qns, taum, rhop(:,:,1), rdt) 
     41      CALL diurnal_sst_coolskin_step( qns, taum, rhop(:,:,1), rn_Dt) 
    4242 
    4343      CALL iom_put( "sst_wl"   , x_dsst               )    ! warm layer (write out before update below). 
     
    4545 
    4646      ! Diurnal warm layer model        
    47       CALL diurnal_sst_takaya_step( kstp, qsr, qns, taum, rhop(:,:,1), rdt)  
     47      CALL diurnal_sst_takaya_step( kstp, qsr, qns, taum, rhop(:,:,1), rn_Dt)  
    4848 
    4949   END SUBROUTINE diurnal_layers   
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DOM/daymod.F90

    r12377 r12495  
    2020   !!                    ------------------------------- 
    2121   !!   sbcmod assume that the time step is dividing the number of second of  
    22    !!   in a day, i.e. ===> MOD( rday, rdt ) == 0  
     22   !!   in a day, i.e. ===> MOD( rday, rn_Dt ) == 0  
    2323   !!   except when user defined forcing is used (see sbcmod.F90) 
    2424   !!---------------------------------------------------------------------- 
     
    7373      ! 
    7474      ! max number of seconds between each restart 
    75       IF( REAL( nitend - nit000 + 1 ) * rdt > REAL( HUGE( nsec1jan000 ) ) ) THEN 
     75      IF( REAL( nitend - nit000 + 1 ) * rn_Dt > REAL( HUGE( nsec1jan000 ) ) ) THEN 
    7676         CALL ctl_stop( 'The number of seconds between each restart exceeds the integer 4 max value: 2^31-1. ',   & 
    7777            &           'You must do a restart at higher frequency (or remove this stop and recompile the code in I8)' ) 
     
    7979      nsecd   = NINT(       rday ) 
    8080      nsecd05 = NINT( 0.5 * rday ) 
    81       ndt     = NINT(       rdt  ) 
    82       ndt05   = NINT( 0.5 * rdt  ) 
     81      ndt     = NINT(       rn_Dt  ) 
     82      ndt05   = NINT( 0.5 * rn_Dt  ) 
    8383 
    8484      IF( .NOT. l_offline )   CALL day_rst( nit000, 'READ' ) 
     
    239239      nsec_monday  = nsec_monday  + ndt 
    240240      nsec_day   = nsec_day   + ndt 
    241       adatrj  = adatrj  + rdt / rday 
    242       fjulday = fjulday + rdt / rday 
     241      adatrj  = adatrj  + rn_Dt / rday 
     242      fjulday = fjulday + rn_Dt / rday 
    243243      IF( ABS(fjulday - REAL(NINT(fjulday),wp)) < zprec )   fjulday = REAL(NINT(fjulday),wp)   ! avoid truncation error 
    244244      IF( ABS(adatrj  - REAL(NINT(adatrj ),wp)) < zprec )   adatrj  = REAL(NINT(adatrj ),wp)   ! avoid truncation error 
     
    309309      !!       In both those options, the  exact duration of the experiment 
    310310      !!       since the beginning (cumulated duration of all previous restart runs) 
    311       !!       is not stored in the restart and is assumed to be (nit000-1)*rdt. 
     311      !!       is not stored in the restart and is assumed to be (nit000-1)*rn_Dt. 
    312312      !!       This is valid is the time step has remained constant. 
    313313      !! 
     
    379379               isecond = ( nhour * NINT(rhhmm) + nminute ) * NINT(rmmss) 
    380380               IF( isecond - ndt05 .lt. 0 )   ndastp = ndastp - 1      ! Start hour is specified in the namelist (default 0) 
    381                adatrj = ( REAL( nit000-1, wp ) * rdt ) / rday 
     381               adatrj = ( REAL( nit000-1, wp ) * rn_Dt ) / rday 
    382382               ! note this is wrong if time step has changed during run 
    383383            ENDIF 
     
    389389            isecond = ( nhour * NINT(rhhmm) + nminute ) * NINT(rmmss) 
    390390            IF( isecond - ndt05 .LT. 0 )   ndastp = ndastp - 1         ! Start hour is specified in the namelist (default 0) 
    391             adatrj = ( REAL( nit000-1, wp ) * rdt ) / rday 
     391            adatrj = ( REAL( nit000-1, wp ) * rn_Dt ) / rday 
    392392         ENDIF 
    393393         IF( ABS(adatrj  - REAL(NINT(adatrj),wp)) < 0.1 / rday )   adatrj = REAL(NINT(adatrj),wp)   ! avoid truncation error 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DOM/dom_oce.F90

    r12377 r12495  
    3333   LOGICAL , PUBLIC ::   ln_linssh      !: =T  linear free surface ==>> model level are fixed in time 
    3434   LOGICAL , PUBLIC ::   ln_meshmask    !: =T  create a mesh-mask file (mesh_mask.nc) 
    35    REAL(wp), PUBLIC ::   rn_rdt         !: time step for the dynamics and tracer 
     35   REAL(wp), PUBLIC ::   rn_Dt          !: time step for the dynamics and tracer 
    3636   REAL(wp), PUBLIC ::   rn_atfp        !: asselin time filter parameter 
    37    INTEGER , PUBLIC ::   nn_euler       !: =0 start with forward time step or not (=1) 
     37   LOGICAL , PUBLIC ::   ln_1st_euler   !: =T start with forward time step or not (=F) 
    3838   LOGICAL , PUBLIC ::   ln_crs         !: Apply grid coarsening to dynamical model output or online passive tracers 
    3939 
     
    4949   LOGICAL,  PUBLIC :: ln_bt_auto       !: Set number of barotropic iterations automatically 
    5050   INTEGER,  PUBLIC :: nn_bt_flt        !: Filter choice 
    51    INTEGER,  PUBLIC :: nn_baro          !: Number of barotropic iterations during one baroclinic step (rdt) 
     51   INTEGER,  PUBLIC :: nn_e          !: Number of barotropic iterations during one baroclinic step (rn_Dt) 
    5252   REAL(wp), PUBLIC :: rn_bt_cmax       !: Maximum allowed courant number (used if ln_bt_auto=T) 
    5353   REAL(wp), PUBLIC :: rn_bt_alpha      !: Time stepping diffusion parameter 
    5454 
    5555 
    56    !                                   !! old non-DOCTOR names still used in the model 
    57    REAL(wp), PUBLIC ::   atfp           !: asselin time filter parameter 
    58    REAL(wp), PUBLIC ::   rdt            !: time step for the dynamics and tracer 
    59  
    6056   !                                   !!! associated variables 
    61    INTEGER , PUBLIC ::   neuler         !: restart euler forward option (0=Euler) 
    62    REAL(wp), PUBLIC ::   r2dt           !: = 2*rdt except at nit000 (=rdt) if neuler=0 
     57   LOGICAL , PUBLIC ::   l_1st_euler    !: Euler 1st time-step flag (=T if ln_restart=F or ln_1st_euler=T) 
     58   REAL(wp), PUBLIC ::   rDt, r1_Dt     !: Current model timestep and reciprocal 
     59                                        !: rDt = 2 * rn_Dt if leapfrog and l_1st_euler = F 
     60                                        !:     =     rn_Dt if leapfrog and l_1st_euler = T 
     61                                        !:     =     rn_Dt if RK3 
    6362 
    6463   !!---------------------------------------------------------------------- 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DOM/domain.F90

    r12377 r12495  
    287287         &             nn_no   , cn_exp   , cn_ocerst_in, cn_ocerst_out, ln_rstart , nn_rstctl ,     & 
    288288         &             nn_it000, nn_itend , nn_date0    , nn_time0     , nn_leapy  , nn_istate ,     & 
    289          &             nn_stock, nn_write , ln_mskland  , ln_clobber   , nn_chunksz, nn_euler  ,    & 
     289         &             nn_stock, nn_write , ln_mskland  , ln_clobber   , nn_chunksz, ln_1st_euler  , & 
    290290         &             ln_cfmeta, ln_xios_read, nn_wxios 
    291       NAMELIST/namdom/ ln_linssh, rn_rdt, rn_atfp, ln_crs, ln_meshmask 
     291      NAMELIST/namdom/ ln_linssh, rn_Dt, rn_atfp, ln_crs, ln_meshmask 
    292292#if defined key_netcdf4 
    293293      NAMELIST/namnc4/ nn_nchunks_i, nn_nchunks_j, nn_nchunks_k, ln_nc4zip 
     
    317317         WRITE(numout,*) '      restart output directory        cn_ocerst_outdir= ', TRIM( cn_ocerst_outdir ) 
    318318         WRITE(numout,*) '      restart logical                 ln_rstart       = ', ln_rstart 
    319          WRITE(numout,*) '      start with forward time step    nn_euler        = ', nn_euler 
     319         WRITE(numout,*) '      start with forward time step    ln_1st_euler    = ', ln_1st_euler 
    320320         WRITE(numout,*) '      control of time step            nn_rstctl       = ', nn_rstctl 
    321321         WRITE(numout,*) '      number of the first time step   nn_it000        = ', nn_it000 
     
    353353      nleapy = nn_leapy 
    354354      ninist = nn_istate 
    355       neuler = nn_euler 
    356       IF( neuler == 1 .AND. .NOT. ln_rstart ) THEN 
     355      l_1st_euler = ln_1st_euler 
     356      IF( .NOT. l_1st_euler .AND. .NOT. ln_rstart ) THEN 
    357357         IF(lwp) WRITE(numout,*)   
    358358         IF(lwp) WRITE(numout,*)'   ==>>>   Start from rest (ln_rstart=F)' 
    359          IF(lwp) WRITE(numout,*)'           an Euler initial time step is used : nn_euler is forced to 0 '    
    360          neuler = 0 
     359         IF(lwp) WRITE(numout,*)'           an Euler initial time step is used : l_1st_euler is forced to .true. '    
     360         l_1st_euler = .true. 
    361361      ENDIF 
    362362      !                             ! control of output frequency 
     
    408408         WRITE(numout,*) '      linear free surface (=T)                ln_linssh   = ', ln_linssh 
    409409         WRITE(numout,*) '      create mesh/mask file                   ln_meshmask = ', ln_meshmask 
    410          WRITE(numout,*) '      ocean time step                         rn_rdt      = ', rn_rdt 
     410         WRITE(numout,*) '      ocean time step                         rn_Dt       = ', rn_Dt 
    411411         WRITE(numout,*) '      asselin time filter parameter           rn_atfp     = ', rn_atfp 
    412412         WRITE(numout,*) '      online coarsening of dynamical fields   ln_crs      = ', ln_crs 
    413413      ENDIF 
    414414      ! 
    415       !          ! conversion DOCTOR names into model names (this should disappear soon) 
    416       atfp = rn_atfp 
    417       rdt  = rn_rdt 
     415      !! Initialise current model timestep rDt = 2*rn_Dt if MLF or rDt = rn_Dt if RK3 
     416      rDt  = 2._wp * rn_Dt 
     417      r1_Dt = 1._wp / rDt 
    418418 
    419419      IF( TRIM(Agrif_CFixed()) == '0' ) THEN 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DOM/domvvl.F90

    r12377 r12495  
    235235         IF( ln_vvl_ztilde_as_zstar ) THEN   ! z-star emulation using z-tile 
    236236            frq_rst_e3t(:,:) = 0._wp               !Ignore namelist settings 
    237             frq_rst_hdv(:,:) = 1._wp / rdt 
     237            frq_rst_hdv(:,:) = 1._wp / rn_Dt 
    238238         ENDIF 
    239239         IF ( ln_vvl_zstar_at_eqtor ) THEN   ! use z-star in vicinity of the Equator 
     
    247247                  ! values inside the equatorial band (ztilde as zstar) 
    248248                  frq_rst_e3t(ji,jj) =  0.0_wp 
    249                   frq_rst_hdv(ji,jj) =  1.0_wp / rdt 
     249                  frq_rst_hdv(ji,jj) =  1.0_wp / rn_Dt 
    250250               ELSE                                      ! transition band (2.5 to 6 degrees N/S) 
    251251                  !                                      ! (linearly transition from z-tilde to z-star) 
     
    253253                     &            * (  1.0_wp - COS( rad*(ABS(gphit(ji,jj))-2.5_wp)  & 
    254254                     &                                          * 180._wp / 3.5_wp ) ) 
    255                   frq_rst_hdv(ji,jj) = (1.0_wp / rdt)                                & 
    256                      &            + (  frq_rst_hdv(ji,jj)-(1.e0_wp / rdt) )*0.5_wp   & 
     255                  frq_rst_hdv(ji,jj) = (1.0_wp / rn_Dt)                                & 
     256                     &            + (  frq_rst_hdv(ji,jj)-(1.e0_wp / rn_Dt) )*0.5_wp   & 
    257257                     &            * (  1._wp  - COS( rad*(ABS(gphit(ji,jj))-2.5_wp)  & 
    258258                     &                                          * 180._wp / 3.5_wp ) ) 
     
    264264                  ij0 = 128   ;   ij1 = 135   ;    
    265265                  frq_rst_e3t( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) =  0.0_wp 
    266                   frq_rst_hdv( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) =  1.e0_wp / rdt 
     266                  frq_rst_hdv( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) =  1.e0_wp / rn_Dt 
    267267               ENDIF 
    268268            ENDIF 
     
    319319      INTEGER                ::   ji, jj, jk            ! dummy loop indices 
    320320      INTEGER , DIMENSION(3) ::   ijk_max, ijk_min      ! temporary integers 
    321       REAL(wp)               ::   z2dt, z_tmin, z_tmax  ! local scalars 
     321      REAL(wp)               ::   z_tmin, z_tmax        ! local scalars 
    322322      LOGICAL                ::   ll_do_bclinic         ! local logical 
    323323      REAL(wp), DIMENSION(jpi,jpj)     ::   zht, z_scale, zwu, zwv, zhdiv 
     
    373373            IF( kt > nit000 ) THEN 
    374374               DO jk = 1, jpkm1 
    375                   hdiv_lf(:,:,jk) = hdiv_lf(:,:,jk) - rdt * frq_rst_hdv(:,:)   & 
     375                  hdiv_lf(:,:,jk) = hdiv_lf(:,:,jk) - rn_Dt * frq_rst_hdv(:,:)   & 
    376376                     &          * ( hdiv_lf(:,:,jk) - e3t(:,:,jk,Kmm) * ( hdiv(:,:,jk) - zhdiv(:,:) ) ) 
    377377               END DO 
     
    430430         ! 4 - Time stepping of baroclinic scale factors 
    431431         ! --------------------------------------------- 
    432          ! Leapfrog time stepping 
    433          ! ~~~~~~~~~~~~~~~~~~~~~~ 
    434          IF( neuler == 0 .AND. kt == nit000 ) THEN 
    435             z2dt =  rdt 
    436          ELSE 
    437             z2dt = 2.0_wp * rdt 
    438          ENDIF 
    439432         CALL lbc_lnk( 'domvvl', tilde_e3t_a(:,:,:), 'T', 1._wp ) 
    440          tilde_e3t_a(:,:,:) = tilde_e3t_b(:,:,:) + z2dt * tmask(:,:,:) * tilde_e3t_a(:,:,:) 
     433         tilde_e3t_a(:,:,:) = tilde_e3t_b(:,:,:) + rDt * tmask(:,:,:) * tilde_e3t_a(:,:,:) 
    441434 
    442435         ! Maximum deformation control 
     
    624617      ! - ML - e3(t/u/v)_b are allready computed in dynnxt. 
    625618      IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN 
    626          IF( neuler == 0 .AND. kt == nit000 ) THEN 
     619         IF( l_1st_euler ) THEN 
    627620            tilde_e3t_b(:,:,:) = tilde_e3t_n(:,:,:) 
    628621         ELSE 
    629622            tilde_e3t_b(:,:,:) = tilde_e3t_n(:,:,:) &  
    630             &         + atfp * ( tilde_e3t_b(:,:,:) - 2.0_wp * tilde_e3t_n(:,:,:) + tilde_e3t_a(:,:,:) ) 
     623            &         + rn_atfp * ( tilde_e3t_b(:,:,:) - 2.0_wp * tilde_e3t_n(:,:,:) + tilde_e3t_a(:,:,:) ) 
    631624         ENDIF 
    632625         tilde_e3t_n(:,:,:) = tilde_e3t_a(:,:,:) 
     
    821814                  e3t(:,:,:,Kbb) = e3t_0(:,:,:) 
    822815               END WHERE 
    823                IF( neuler == 0 ) THEN 
     816               IF( l_1st_euler ) THEN 
    824817                  e3t(:,:,:,Kbb) = e3t(:,:,:,Kmm) 
    825818               ENDIF 
     
    827820               IF(lwp) write(numout,*) 'dom_vvl_rst WARNING : e3t(:,:,:,Kmm) not found in restart files' 
    828821               IF(lwp) write(numout,*) 'e3t_n set equal to e3t_b.' 
    829                IF(lwp) write(numout,*) 'neuler is forced to 0' 
     822               IF(lwp) write(numout,*) 'l_1st_euler is forced to true' 
    830823               CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t(:,:,:,Kbb), ldxios = lrxios ) 
    831824               e3t(:,:,:,Kmm) = e3t(:,:,:,Kbb) 
    832                neuler = 0 
     825               l_1st_euler = .true. 
    833826            ELSE IF( id2 > 0 ) THEN 
    834827               IF(lwp) write(numout,*) 'dom_vvl_rst WARNING : e3t(:,:,:,Kbb) not found in restart files' 
    835828               IF(lwp) write(numout,*) 'e3t_b set equal to e3t_n.' 
    836                IF(lwp) write(numout,*) 'neuler is forced to 0' 
     829               IF(lwp) write(numout,*) 'l_1st_euler is forced to true' 
    837830               CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t(:,:,:,Kmm), ldxios = lrxios ) 
    838831               e3t(:,:,:,Kbb) = e3t(:,:,:,Kmm) 
    839                neuler = 0 
     832               l_1st_euler = .true. 
    840833            ELSE 
    841834               IF(lwp) write(numout,*) 'dom_vvl_rst WARNING : e3t(:,:,:,Kmm) not found in restart file' 
    842835               IF(lwp) write(numout,*) 'Compute scale factor from sshn' 
    843                IF(lwp) write(numout,*) 'neuler is forced to 0' 
     836               IF(lwp) write(numout,*) 'l_1st_euler is forced to true' 
    844837               DO jk = 1, jpk 
    845838                  e3t(:,:,jk,Kmm) =  e3t_0(:,:,jk) * ( ht_0(:,:) + ssh(:,:,Kmm) ) & 
     
    848841               END DO 
    849842               e3t(:,:,:,Kbb) = e3t(:,:,:,Kmm) 
    850                neuler = 0 
     843               l_1st_euler = .true. 
    851844            ENDIF 
    852845            !                             ! ----------- ! 
     
    10081001            WRITE(numout,*) '                         rn_rst_e3t     = 0.e0' 
    10091002            WRITE(numout,*) '            hard-wired : z-tilde cutoff frequency of low-pass filter (days)' 
    1010             WRITE(numout,*) '                         rn_lf_cutoff   = 1.0/rdt' 
     1003            WRITE(numout,*) '                         rn_lf_cutoff   = 1.0/rn_Dt' 
    10111004         ELSE 
    10121005            WRITE(numout,*) '      z-tilde to zstar restoration timescale (days)        rn_rst_e3t   = ', rn_rst_e3t 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DOM/istate.F90

    r12377 r12495  
    9292         !                                    ! --------------- 
    9393         numror = 0                           ! define numror = 0 -> no restart file to read 
    94          neuler = 0                           ! Set time-step indicator at nit000 (euler forward) 
     94         l_1st_euler = .true.                 ! Set time-step indicator at nit000 (euler forward) 
    9595         CALL day_init                        ! model calendar (using both namelist and restart infos) 
    9696         !                                    ! Initialization of ocean to zero 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DOM/phycst.F90

    r10068 r12495  
    3939   REAL(wp), PUBLIC ::   rt0      = 273.15_wp        !: freezing point of fresh water [Kelvin] 
    4040 
    41    REAL(wp), PUBLIC ::   rau0                        !: volumic mass of reference     [kg/m3] 
    42    REAL(wp), PUBLIC ::   r1_rau0                     !: = 1. / rau0                   [m3/kg] 
     41   REAL(wp), PUBLIC ::   rho0                        !: volumic mass of reference     [kg/m3] 
     42   REAL(wp), PUBLIC ::   r1_rho0                     !: = 1. / rho0                   [m3/kg] 
    4343   REAL(wp), PUBLIC ::   rcp                         !: ocean specific heat           [J/Kelvin] 
    4444   REAL(wp), PUBLIC ::   r1_rcp                      !: = 1. / rcp                    [Kelvin/J] 
    45    REAL(wp), PUBLIC ::   rau0_rcp                    !: = rau0 * rcp  
    46    REAL(wp), PUBLIC ::   r1_rau0_rcp                 !: = 1. / ( rau0 * rcp ) 
     45   REAL(wp), PUBLIC ::   rho0_rcp                    !: = rho0 * rcp  
     46   REAL(wp), PUBLIC ::   r1_rho0_rcp                 !: = 1. / ( rho0 * rcp ) 
    4747 
    4848   REAL(wp), PUBLIC ::   emic     =    0.97_wp       !: emissivity of snow or ice (not used?) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DYN/dynatf.F90

    r12377 r12495  
    8787      !!             arrays to start the next time step: 
    8888      !!                (puu(Kmm),pvv(Kmm)) = (puu(Kmm),pvv(Kmm))  
    89       !!                                    + atfp [ (puu(Kbb),pvv(Kbb)) + (puu(Kaa),pvv(Kaa)) - 2 (puu(Kmm),pvv(Kmm)) ] 
     89      !!                                    + rn_atfp [ (puu(Kbb),pvv(Kbb)) + (puu(Kaa),pvv(Kaa)) - 2 (puu(Kmm),pvv(Kmm)) ] 
    9090      !!             Note that with flux form advection and non linear free surface, 
    9191      !!             the time filter is applied on thickness weighted velocity. 
     
    157157      ! 
    158158      IF( l_trddyn ) THEN             ! prepare the atf trend computation + some diagnostics 
    159          z1_2dt = 1._wp / (2. * rdt)        ! Euler or leap-frog time step  
    160          IF( neuler == 0 .AND. kt == nit000 )   z1_2dt = 1._wp / rdt 
    161159         ! 
    162160         !                                  ! Kinetic energy and Conversion 
     
    164162         ! 
    165163         IF( ln_dyn_trd ) THEN              ! 3D output: total momentum trends 
    166             zua(:,:,:) = ( puu(:,:,:,Kaa) - puu(:,:,:,Kbb) ) * z1_2dt 
    167             zva(:,:,:) = ( pvv(:,:,:,Kaa) - pvv(:,:,:,Kbb) ) * z1_2dt 
     164            zua(:,:,:) = ( puu(:,:,:,Kaa) - puu(:,:,:,Kbb) ) * r1_Dt 
     165            zva(:,:,:) = ( pvv(:,:,:,Kaa) - pvv(:,:,:,Kbb) ) * r1_Dt 
    168166            CALL iom_put( "utrd_tot", zua )        ! total momentum trends, except the asselin time filter 
    169167            CALL iom_put( "vtrd_tot", zva ) 
     
    178176      ! ------------------------------------------ 
    179177          
    180       IF( .NOT.( neuler == 0 .AND. kt == nit000 ) ) THEN    !* Leap-Frog : Asselin time filter  
     178      IF( .NOT. l_1st_euler ) THEN    !* Leap-Frog : Asselin time filter  
    181179         !                                ! =============! 
    182180         IF( ln_linssh ) THEN             ! Fixed volume ! 
    183181            !                             ! =============! 
    184182            DO_3D_11_11( 1, jpkm1 ) 
    185                puu(ji,jj,jk,Kmm) = puu(ji,jj,jk,Kmm) + atfp * ( puu(ji,jj,jk,Kbb) - 2._wp * puu(ji,jj,jk,Kmm) + puu(ji,jj,jk,Kaa) ) 
    186                pvv(ji,jj,jk,Kmm) = pvv(ji,jj,jk,Kmm) + atfp * ( pvv(ji,jj,jk,Kbb) - 2._wp * pvv(ji,jj,jk,Kmm) + pvv(ji,jj,jk,Kaa) ) 
     183               puu(ji,jj,jk,Kmm) = puu(ji,jj,jk,Kmm) + rn_atfp * ( puu(ji,jj,jk,Kbb) - 2._wp * puu(ji,jj,jk,Kmm) + puu(ji,jj,jk,Kaa) ) 
     184               pvv(ji,jj,jk,Kmm) = pvv(ji,jj,jk,Kmm) + rn_atfp * ( pvv(ji,jj,jk,Kbb) - 2._wp * pvv(ji,jj,jk,Kmm) + pvv(ji,jj,jk,Kaa) ) 
    187185            END_3D 
    188186            !                             ! ================! 
     
    193191            ALLOCATE( ze3t_f(jpi,jpj,jpk), zwfld(jpi,jpj) ) 
    194192            DO jk = 1, jpkm1 
    195                ze3t_f(:,:,jk) = pe3t(:,:,jk,Kmm) + atfp * ( pe3t(:,:,jk,Kbb) - 2._wp * pe3t(:,:,jk,Kmm) + pe3t(:,:,jk,Kaa) ) 
     193               ze3t_f(:,:,jk) = pe3t(:,:,jk,Kmm) + rn_atfp * ( pe3t(:,:,jk,Kbb) - 2._wp * pe3t(:,:,jk,Kmm) + pe3t(:,:,jk,Kaa) ) 
    196194            END DO 
    197195            ! Add volume filter correction: compatibility with tracer advection scheme 
    198196            ! => time filter + conservation correction 
    199             zcoef = atfp * rdt * r1_rau0 
     197            zcoef = rn_atfp * rn_Dt * r1_rho0 
    200198            zwfld(:,:) = emp_b(:,:) - emp(:,:) 
    201199            IF ( ln_rnf ) zwfld(:,:) =  zwfld(:,:) - ( rnf_b(:,:) - rnf(:,:) ) 
     
    209207            !     to manage rnf, isf and possibly in the futur icb, tide water glacier (...) 
    210208            !     ...(kt, coef, ktop, kbot, hz, fwf_b, fwf) 
    211             IF ( ln_isf ) CALL isf_dynatf( kt, Kmm, ze3t_f, atfp * rdt ) 
     209            IF ( ln_isf ) CALL isf_dynatf( kt, Kmm, ze3t_f, rn_atfp * rn_Dt ) 
    212210            ! 
    213211            pe3t(:,:,1:jpkm1,Kmm) = ze3t_f(:,:,1:jpkm1)        ! filtered scale factor at T-points 
     
    218216               CALL dom_vvl_interpol( pe3t(:,:,:,Kmm), pe3v(:,:,:,Kmm), 'V' ) 
    219217               DO_3D_11_11( 1, jpkm1 ) 
    220                   puu(ji,jj,jk,Kmm) = puu(ji,jj,jk,Kmm) + atfp * ( puu(ji,jj,jk,Kbb) - 2._wp * puu(ji,jj,jk,Kmm) + puu(ji,jj,jk,Kaa) ) 
    221                   pvv(ji,jj,jk,Kmm) = pvv(ji,jj,jk,Kmm) + atfp * ( pvv(ji,jj,jk,Kbb) - 2._wp * pvv(ji,jj,jk,Kmm) + pvv(ji,jj,jk,Kaa) ) 
     218                  puu(ji,jj,jk,Kmm) = puu(ji,jj,jk,Kmm) + rn_atfp * ( puu(ji,jj,jk,Kbb) - 2._wp * puu(ji,jj,jk,Kmm) + puu(ji,jj,jk,Kaa) ) 
     219                  pvv(ji,jj,jk,Kmm) = pvv(ji,jj,jk,Kmm) + rn_atfp * ( pvv(ji,jj,jk,Kbb) - 2._wp * pvv(ji,jj,jk,Kmm) + pvv(ji,jj,jk,Kaa) ) 
    222220               END_3D 
    223221               ! 
     
    236234                  zve3b = pe3v(ji,jj,jk,Kbb) * pvv(ji,jj,jk,Kbb) 
    237235                  ! 
    238                   puu(ji,jj,jk,Kmm) = ( zue3n + atfp * ( zue3b - 2._wp * zue3n  + zue3a ) ) / ze3u_f(ji,jj,jk) 
    239                   pvv(ji,jj,jk,Kmm) = ( zve3n + atfp * ( zve3b - 2._wp * zve3n  + zve3a ) ) / ze3v_f(ji,jj,jk) 
     236                  puu(ji,jj,jk,Kmm) = ( zue3n + rn_atfp * ( zue3b - 2._wp * zue3n  + zue3a ) ) / ze3u_f(ji,jj,jk) 
     237                  pvv(ji,jj,jk,Kmm) = ( zve3n + rn_atfp * ( zve3b - 2._wp * zve3n  + zve3a ) ) / ze3v_f(ji,jj,jk) 
    240238               END_3D 
    241239               pe3u(:,:,1:jpkm1,Kmm) = ze3u_f(:,:,1:jpkm1)   
     
    263261         ENDIF 
    264262         ! 
    265       ENDIF ! neuler /= 0 
     263      ENDIF ! .NOT. l_1st_euler 
    266264      ! 
    267265      ! Set "now" and "before" barotropic velocities for next time step: 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DYN/dynspg.F90

    r12377 r12495  
    6767      !!              ln_apr_dyn=T : the atmospheric pressure forcing is applied  
    6868      !!             as the gradient of the inverse barometer ssh: 
    69       !!                apgu = - 1/rau0 di[apr] = 0.5*grav di[ssh_ib+ssh_ibb] 
    70       !!                apgv = - 1/rau0 dj[apr] = 0.5*grav dj[ssh_ib+ssh_ibb] 
    71       !!             Note that as all external forcing a time averaging over a two rdt 
     69      !!                apgu = - 1/rho0 di[apr] = 0.5*grav di[ssh_ib+ssh_ibb] 
     70      !!                apgv = - 1/rho0 dj[apr] = 0.5*grav dj[ssh_ib+ssh_ibb] 
     71      !!             Note that as all external forcing a time averaging over a two rn_Dt 
    7272      !!             period is used to prevent the divergence of odd and even time step. 
    7373      !!---------------------------------------------------------------------- 
     
    7878      ! 
    7979      INTEGER  ::   ji, jj, jk                   ! dummy loop indices 
    80       REAL(wp) ::   z2dt, zg_2, zintp, zgrau0r, zld   ! local scalars 
     80      REAL(wp) ::   z2dt, zg_2, zintp, zgrho0r, zld   ! local scalars 
    8181      REAL(wp), ALLOCATABLE, DIMENSION(:,:)   ::   zpice 
    8282      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   ztrdu, ztrdv 
     
    114114            ! 
    115115            ! Update tide potential at the beginning of current time step 
    116             zt0step = REAL(nsec_day, wp)-0.5_wp*rdt 
     116            zt0step = REAL(nsec_day, wp)-0.5_wp*rn_Dt 
    117117            CALL upd_tide(zt0step, Kmm) 
    118118            ! 
     
    134134            ALLOCATE( zpice(jpi,jpj) ) 
    135135            zintp = REAL( MOD( kt-1, nn_fsbc ) ) / REAL( nn_fsbc ) 
    136             zgrau0r     = - grav * r1_rau0 
    137             zpice(:,:) = (  zintp * snwice_mass(:,:) + ( 1.- zintp ) * snwice_mass_b(:,:)  ) * zgrau0r 
     136            zgrho0r     = - grav * r1_rho0 
     137            zpice(:,:) = (  zintp * snwice_mass(:,:) + ( 1.- zintp ) * snwice_mass_b(:,:)  ) * zgrho0r 
    138138            DO_2D_00_00 
    139139               spgu(ji,jj) = spgu(ji,jj) + ( zpice(ji+1,jj) - zpice(ji,jj) ) * r1_e1u(ji,jj) 
     
    183183      NAMELIST/namdyn_spg/ ln_dynspg_exp       , ln_dynspg_ts,   & 
    184184      &                    ln_bt_fw, ln_bt_av  , ln_bt_auto  ,   & 
    185       &                    nn_baro , rn_bt_cmax, nn_bt_flt, rn_bt_alpha 
     185      &                    nn_e , rn_bt_cmax, nn_bt_flt, rn_bt_alpha 
    186186      !!---------------------------------------------------------------------- 
    187187      ! 
     
    222222      ! 
    223223      IF( nspg == np_TS ) THEN   ! split-explicit scheme initialisation 
    224          CALL dyn_spg_ts_init          ! do it first: set nn_baro used to allocate some arrays later on 
     224         CALL dyn_spg_ts_init          ! do it first: set nn_e used to allocate some arrays later on 
    225225      ENDIF 
    226226      ! 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DYN/dynspg_exp.F90

    r12377 r12495  
    4949      !!              momentum trend the surface pressure gradient : 
    5050      !!                      (uu(rhs),vv(rhs)) = (uu(rhs),vv(rhs)) + (spgu,spgv) 
    51       !!              where spgu = -1/rau0 d/dx(ps) = -g/e1u di( ssh(now) ) 
    52       !!                    spgv = -1/rau0 d/dy(ps) = -g/e2v dj( ssh(now) ) 
     51      !!              where spgu = -1/rho0 d/dx(ps) = -g/e1u di( ssh(now) ) 
     52      !!                    spgv = -1/rho0 d/dy(ps) = -g/e2v dj( ssh(now) ) 
    5353      !! 
    5454      !! ** Action :   (puu(:,:,:,Krhs),pvv(:,:,:,Krhs))   trend of horizontal velocity increased by  
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DYN/dynspg_ts.F90

    r12377 r12495  
    7272   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   un_adv , vn_adv   !: Advection vel. at "now" barocl. step 
    7373   ! 
    74    INTEGER, SAVE :: icycle      ! Number of barotropic sub-steps for each internal step nn_baro <= 2.5 nn_baro 
    75    REAL(wp),SAVE :: rdtbt       ! Barotropic time step 
     74   INTEGER, SAVE :: icycle      ! Number of barotropic sub-steps for each internal step nn_e <= 2.5 nn_e 
     75   REAL(wp),SAVE :: rDt_e       ! Barotropic time step 
    7676   ! 
    7777   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:)   ::   wgtbtp1, wgtbtp2   ! 1st & 2nd weights used in time filtering of barotropic fields 
     
    102102      ierr(:) = 0 
    103103      ! 
    104       ALLOCATE( wgtbtp1(3*nn_baro), wgtbtp2(3*nn_baro), zwz(jpi,jpj), STAT=ierr(1) ) 
     104      ALLOCATE( wgtbtp1(3*nn_e), wgtbtp2(3*nn_e), zwz(jpi,jpj), STAT=ierr(1) ) 
    105105      IF( ln_dynvor_een .OR. ln_dynvor_eeT )   & 
    106106         &     ALLOCATE( ftnw(jpi,jpj) , ftne(jpi,jpj) , ftsw(jpi,jpj) , ftse(jpi,jpj), STAT=ierr(2)   ) 
     
    150150      LOGICAL  ::   ll_init               ! =T : special startup of 2d equations 
    151151      INTEGER  ::   noffset               ! local integers  : time offset for bdy update 
    152       REAL(wp) ::   r1_2dt_b, z1_hu, z1_hv          ! local scalars 
     152      REAL(wp) ::   r1_Dt_b, z1_hu, z1_hv          ! local scalars 
    153153      REAL(wp) ::   za0, za1, za2, za3              !   -      - 
    154154      REAL(wp) ::   zztmp, zldg               !   -      - 
     
    180180!     zwdramp = 1._wp / (rn_wdmin2 - rn_wdmin1) ! more general ramp 
    181181      !                                         ! inverse of baroclinic time step  
    182       IF( kt == nit000 .AND. neuler == 0 ) THEN   ;   r1_2dt_b = 1._wp / (         rdt ) 
    183       ELSE                                        ;   r1_2dt_b = 1._wp / ( 2._wp * rdt ) 
    184       ENDIF 
     182      r1_Dt_b = 1._wp / rDt  
    185183      ! 
    186184      ll_init     = ln_bt_av                    ! if no time averaging, then no specific restart  
    187185      ll_fw_start = .FALSE. 
    188186      !                                         ! time offset in steps for bdy data update 
    189       IF( .NOT.ln_bt_fw ) THEN   ;   noffset = - nn_baro 
     187      IF( .NOT.ln_bt_fw ) THEN   ;   noffset = - nn_e 
    190188      ELSE                       ;   noffset =   0  
    191189      ENDIF 
     
    198196         IF(lwp) WRITE(numout,*) 
    199197         ! 
    200          IF( neuler == 0 )   ll_init=.TRUE. 
    201          ! 
    202          IF( ln_bt_fw .OR. neuler == 0 ) THEN 
     198         IF( l_1st_euler )   ll_init=.TRUE. 
     199         ! 
     200         IF( ln_bt_fw .OR. l_1st_euler ) THEN 
    203201            ll_fw_start =.TRUE. 
    204202            noffset     = 0 
     
    209207         CALL ts_wgt( ln_bt_av, ll_fw_start, icycle, wgtbtp1, wgtbtp2 ) 
    210208         ! 
    211       ENDIF 
    212       ! 
    213       ! If forward start at previous time step, and centered integration,  
    214       ! then update averaging weights: 
    215       IF (.NOT.ln_bt_fw .AND.( neuler==0 .AND. kt==nit000+1 ) ) THEN 
    216          ll_fw_start=.FALSE. 
    217          CALL ts_wgt( ln_bt_av, ll_fw_start, icycle, wgtbtp1, wgtbtp2 ) 
    218       ENDIF 
    219       ! 
    220                            
     209      ELSEIF( kt == nit000 + 1 ) THEN           !* initialisation 2nd time-step 
     210         ! 
     211         IF( .NOT.ln_bt_fw ) THEN 
     212            ! If we did an Euler timestep on the first timestep we need to reset ll_fw_start 
     213            ! and the averaging weights. We don't have an easy way of telling whether we did 
     214            ! an Euler timestep on the first timestep (because l_1st_euler is reset to .false. 
     215            ! at the end of the first timestep) so just do this in all cases.  
     216            ll_fw_start = .FALSE. 
     217            CALL ts_wgt( ln_bt_av, ll_fw_start, icycle, wgtbtp1, wgtbtp2 ) 
     218         ENDIF 
     219         ! 
     220      ENDIF 
     221      ! 
    221222      ! ----------------------------------------------------------------------------- 
    222223      !  Phase 1 : Coupling between general trend and barotropic estimates (1st step) 
     
    302303      IF( ln_bt_fw ) THEN                        ! Add wind forcing 
    303304         DO_2D_00_00 
    304             zu_frc(ji,jj) =  zu_frc(ji,jj) + r1_rau0 * utau(ji,jj) * r1_hu(ji,jj,Kmm) 
    305             zv_frc(ji,jj) =  zv_frc(ji,jj) + r1_rau0 * vtau(ji,jj) * r1_hv(ji,jj,Kmm) 
     305            zu_frc(ji,jj) =  zu_frc(ji,jj) + r1_rho0 * utau(ji,jj) * r1_hu(ji,jj,Kmm) 
     306            zv_frc(ji,jj) =  zv_frc(ji,jj) + r1_rho0 * vtau(ji,jj) * r1_hv(ji,jj,Kmm) 
    306307         END_2D 
    307308      ELSE 
    308          zztmp = r1_rau0 * r1_2 
     309         zztmp = r1_rho0 * r1_2 
    309310         DO_2D_00_00 
    310311            zu_frc(ji,jj) =  zu_frc(ji,jj) + zztmp * ( utau_b(ji,jj) + utau(ji,jj) ) * r1_hu(ji,jj,Kmm) 
     
    319320      !                                   ! ---------------------------------------------------  ! 
    320321      IF (ln_bt_fw) THEN                          ! FORWARD integration: use kt+1/2 fluxes (NOW+1/2) 
    321          zssh_frc(:,:) = r1_rau0 * ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) ) 
     322         zssh_frc(:,:) = r1_rho0 * ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) ) 
    322323      ELSE                                        ! CENTRED integration: use kt-1/2 + kt+1/2 fluxes (NOW) 
    323          zztmp = r1_rau0 * r1_2 
     324         zztmp = r1_rho0 * r1_2 
    324325         zssh_frc(:,:) = zztmp * (  emp(:,:)        + emp_b(:,:)                    & 
    325326                &                 - rnf(:,:)        - rnf_b(:,:)                    & 
     
    428429         ! Update tide potential at the beginning of current time substep 
    429430         IF( ln_tide_pot .AND. ln_tide ) THEN 
    430             zt0substep = REAL(nsec_day, wp) - 0.5_wp*rdt + (jn + noffset - 1) * rdt / REAL(nn_baro, wp) 
     431            zt0substep = REAL(nsec_day, wp) - 0.5_wp*rn_Dt + (jn + noffset - 1) * rn_Dt / REAL(nn_e, wp) 
    431432            CALL upd_tide(zt0substep, Kmm) 
    432433         END IF 
     
    494495         IF( .NOT.Agrif_Root() .AND. ln_bt_fw ) CALL agrif_dyn_ts_flux( jn, zhU, zhV ) 
    495496#endif 
    496          IF( ln_wd_il )   CALL wad_lmt_bt(zhU, zhV, sshn_e, zssh_frc, rdtbt)    !!gm wad_lmt_bt use of lbc_lnk on zhU, zhV 
     497         IF( ln_wd_il )   CALL wad_lmt_bt(zhU, zhV, sshn_e, zssh_frc, rDt_e)    !!gm wad_lmt_bt use of lbc_lnk on zhU, zhV 
    497498 
    498499         IF( ln_wd_dl ) THEN           ! un_e and vn_e are set to zero at faces where  
     
    509510         DO_2D_00_00 
    510511            zhdiv = (   zhU(ji,jj) - zhU(ji-1,jj) + zhV(ji,jj) - zhV(ji,jj-1)   ) * r1_e1e2t(ji,jj) 
    511             ssha_e(ji,jj) = (  sshn_e(ji,jj) - rdtbt * ( zssh_frc(ji,jj) + zhdiv )  ) * ssmask(ji,jj) 
     512            ssha_e(ji,jj) = (  sshn_e(ji,jj) - rDt_e * ( zssh_frc(ji,jj) + zhdiv )  ) * ssmask(ji,jj) 
    512513         END_2D 
    513514         ! 
     
    599600            DO_2D_00_00 
    600601               ua_e(ji,jj) = (                                 un_e(ji,jj)   &  
    601                          &     + rdtbt * (                   zu_spg(ji,jj)   & 
     602                         &     + rDt_e * (                   zu_spg(ji,jj)   & 
    602603                         &                                 + zu_trd(ji,jj)   & 
    603604                         &                                 + zu_frc(ji,jj) ) &  
     
    605606 
    606607               va_e(ji,jj) = (                                 vn_e(ji,jj)   & 
    607                          &     + rdtbt * (                   zv_spg(ji,jj)   & 
     608                         &     + rDt_e * (                   zv_spg(ji,jj)   & 
    608609                         &                                 + zv_trd(ji,jj)   & 
    609610                         &                                 + zv_frc(ji,jj) ) & 
     
    624625               ! 
    625626               ua_e(ji,jj) = (               hu_e  (ji,jj) *   un_e (ji,jj)      &  
    626                     &            + rdtbt * (  zhu_bck        * zu_spg (ji,jj)  &   ! 
     627                    &            + rDt_e * (  zhu_bck        * zu_spg (ji,jj)  &   ! 
    627628                    &                       + zhup2_e(ji,jj) * zu_trd (ji,jj)  &   ! 
    628629                    &                       +  hu(ji,jj,Kmm) * zu_frc (ji,jj)  )   ) * z1_hu 
    629630               ! 
    630631               va_e(ji,jj) = (               hv_e  (ji,jj) *   vn_e (ji,jj)      & 
    631                     &            + rdtbt * (  zhv_bck        * zv_spg (ji,jj)  &   ! 
     632                    &            + rDt_e * (  zhv_bck        * zv_spg (ji,jj)  &   ! 
    632633                    &                       + zhvp2_e(ji,jj) * zv_trd (ji,jj)  &   ! 
    633634                    &                       +  hv(ji,jj,Kmm) * zv_frc (ji,jj)  )   ) * z1_hv 
     
    637638         IF ( ll_wd ) THEN ! revert to explicit for bit comparison tests in non wad runs 
    638639            DO_2D_00_00 
    639                   ua_e(ji,jj) =  ua_e(ji,jj) /(1.0 -   rdtbt * zCdU_u(ji,jj) * hur_e(ji,jj)) 
    640                   va_e(ji,jj) =  va_e(ji,jj) /(1.0 -   rdtbt * zCdU_v(ji,jj) * hvr_e(ji,jj)) 
     640                  ua_e(ji,jj) =  ua_e(ji,jj) /(1.0 -   rDt_e * zCdU_u(ji,jj) * hur_e(ji,jj)) 
     641                  va_e(ji,jj) =  va_e(ji,jj) /(1.0 -   rDt_e * zCdU_v(ji,jj) * hvr_e(ji,jj)) 
    641642            END_2D 
    642643         ENDIF 
     
    701702      ! Set advection velocity correction: 
    702703      IF (ln_bt_fw) THEN 
    703          IF( .NOT.( kt == nit000 .AND. neuler==0 ) ) THEN 
     704         IF( .NOT.( kt == nit000 .AND. l_1st_euler ) ) THEN 
    704705            DO_2D_11_11 
    705706               zun_save = un_adv(ji,jj) 
    706707               zvn_save = vn_adv(ji,jj) 
    707708               !                          ! apply the previously computed correction  
    708                un_adv(ji,jj) = r1_2 * ( ub2_b(ji,jj) + zun_save - atfp * un_bf(ji,jj) ) 
    709                vn_adv(ji,jj) = r1_2 * ( vb2_b(ji,jj) + zvn_save - atfp * vn_bf(ji,jj) ) 
     709               un_adv(ji,jj) = r1_2 * ( ub2_b(ji,jj) + zun_save - rn_atfp * un_bf(ji,jj) ) 
     710               vn_adv(ji,jj) = r1_2 * ( vb2_b(ji,jj) + zvn_save - rn_atfp * vn_bf(ji,jj) ) 
    710711               !                          ! Update corrective fluxes for next time step 
    711                un_bf(ji,jj)  = atfp * un_bf(ji,jj) + ( zun_save - ub2_b(ji,jj) ) 
    712                vn_bf(ji,jj)  = atfp * vn_bf(ji,jj) + ( zvn_save - vb2_b(ji,jj) ) 
     712               un_bf(ji,jj)  = rn_atfp * un_bf(ji,jj) + ( zun_save - ub2_b(ji,jj) ) 
     713               vn_bf(ji,jj)  = rn_atfp * vn_bf(ji,jj) + ( zvn_save - vb2_b(ji,jj) ) 
    713714               !                          ! Save integrated transport for next computation 
    714715               ub2_b(ji,jj) = zun_save 
     
    728729      IF( ln_dynadv_vec .OR. ln_linssh ) THEN 
    729730         DO jk=1,jpkm1 
    730             puu(:,:,jk,Krhs) = puu(:,:,jk,Krhs) + ( puu_b(:,:,Kaa) - puu_b(:,:,Kbb) ) * r1_2dt_b 
    731             pvv(:,:,jk,Krhs) = pvv(:,:,jk,Krhs) + ( pvv_b(:,:,Kaa) - pvv_b(:,:,Kbb) ) * r1_2dt_b 
     731            puu(:,:,jk,Krhs) = puu(:,:,jk,Krhs) + ( puu_b(:,:,Kaa) - puu_b(:,:,Kbb) ) * r1_Dt_b 
     732            pvv(:,:,jk,Krhs) = pvv(:,:,jk,Krhs) + ( pvv_b(:,:,Kaa) - pvv_b(:,:,Kbb) ) * r1_Dt_b 
    732733         END DO 
    733734      ELSE 
     
    744745         ! 
    745746         DO jk=1,jpkm1 
    746             puu(:,:,jk,Krhs) = puu(:,:,jk,Krhs) + r1_hu(:,:,Kmm) * ( puu_b(:,:,Kaa) - puu_b(:,:,Kbb) * hu(:,:,Kbb) ) * r1_2dt_b 
    747             pvv(:,:,jk,Krhs) = pvv(:,:,jk,Krhs) + r1_hv(:,:,Kmm) * ( pvv_b(:,:,Kaa) - pvv_b(:,:,Kbb) * hv(:,:,Kbb) ) * r1_2dt_b 
     747            puu(:,:,jk,Krhs) = puu(:,:,jk,Krhs) + r1_hu(:,:,Kmm) * ( puu_b(:,:,Kaa) - puu_b(:,:,Kbb) * hu(:,:,Kbb) ) * r1_Dt_b 
     748            pvv(:,:,jk,Krhs) = pvv(:,:,jk,Krhs) + r1_hv(:,:,Kmm) * ( pvv_b(:,:,Kaa) - pvv_b(:,:,Kbb) * hv(:,:,Kbb) ) * r1_Dt_b 
    748749         END DO 
    749750         ! Save barotropic velocities not transport: 
     
    808809      LOGICAL, INTENT(in) ::   ll_fw      ! forward time splitting =.true. 
    809810      INTEGER, INTENT(inout) :: jpit      ! cycle length     
    810       REAL(wp), DIMENSION(3*nn_baro), INTENT(inout) ::   zwgt1, & ! Primary weights 
     811      REAL(wp), DIMENSION(3*nn_e), INTENT(inout) ::   zwgt1, & ! Primary weights 
    811812                                                         zwgt2    ! Secondary weights 
    812813       
     
    820821      ! Set time index when averaged value is requested 
    821822      IF (ll_fw) THEN  
    822          jic = nn_baro 
     823         jic = nn_e 
    823824      ELSE 
    824          jic = 2 * nn_baro 
     825         jic = 2 * nn_e 
    825826      ENDIF 
    826827 
     
    828829      IF (ll_av) THEN 
    829830           ! Define simple boxcar window for primary weights  
    830            ! (width = nn_baro, centered around jic)      
     831           ! (width = nn_e, centered around jic)      
    831832         SELECT CASE ( nn_bt_flt ) 
    832833              CASE( 0 )  ! No averaging 
     
    834835                 jpit = jic 
    835836 
    836               CASE( 1 )  ! Boxcar, width = nn_baro 
    837                  DO jn = 1, 3*nn_baro 
    838                     za1 = ABS(float(jn-jic))/float(nn_baro)  
     837              CASE( 1 )  ! Boxcar, width = nn_e 
     838                 DO jn = 1, 3*nn_e 
     839                    za1 = ABS(float(jn-jic))/float(nn_e)  
    839840                    IF (za1 < 0.5_wp) THEN 
    840841                      zwgt1(jn) = 1._wp 
     
    843844                 ENDDO 
    844845 
    845               CASE( 2 )  ! Boxcar, width = 2 * nn_baro 
    846                  DO jn = 1, 3*nn_baro 
    847                     za1 = ABS(float(jn-jic))/float(nn_baro)  
     846              CASE( 2 )  ! Boxcar, width = 2 * nn_e 
     847                 DO jn = 1, 3*nn_e 
     848                    za1 = ABS(float(jn-jic))/float(nn_e)  
    848849                    IF (za1 < 1._wp) THEN 
    849850                      zwgt1(jn) = 1._wp 
     
    889890      IF( TRIM(cdrw) == 'READ' ) THEN        ! Read/initialise  
    890891         !                                   ! --------------- 
    891          IF( ln_rstart .AND. ln_bt_fw .AND. (neuler/=0) ) THEN    !* Read the restart file 
     892         IF( ln_rstart .AND. ln_bt_fw .AND. (.NOT.l_1st_euler) ) THEN    !* Read the restart file 
    892893            CALL iom_get( numror, jpdom_autoglo, 'ub2_b'  , ub2_b  (:,:), ldxios = lrxios )    
    893894            CALL iom_get( numror, jpdom_autoglo, 'vb2_b'  , vb2_b  (:,:), ldxios = lrxios )  
     
    975976 
    976977      ! Estimate number of iterations to satisfy a max courant number= rn_bt_cmax 
    977       IF( ln_bt_auto )   nn_baro = CEILING( rdt / rn_bt_cmax * zcmax) 
     978      IF( ln_bt_auto )   nn_e = CEILING( rn_Dt / rn_bt_cmax * zcmax) 
    978979       
    979       rdtbt = rdt / REAL( nn_baro , wp ) 
    980       zcmax = zcmax * rdtbt 
     980      rDt_e = rn_Dt / REAL( nn_e , wp ) 
     981      zcmax = zcmax * rDt_e 
    981982      ! Print results 
    982983      IF(lwp) WRITE(numout,*) 
     
    984985      IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~~~' 
    985986      IF( ln_bt_auto ) THEN 
    986          IF(lwp) WRITE(numout,*) '     ln_ts_auto =.true. Automatically set nn_baro ' 
     987         IF(lwp) WRITE(numout,*) '     ln_ts_auto =.true. Automatically set nn_e ' 
    987988         IF(lwp) WRITE(numout,*) '     Max. courant number allowed: ', rn_bt_cmax 
    988989      ELSE 
    989          IF(lwp) WRITE(numout,*) '     ln_ts_auto=.false.: Use nn_baro in namelist   nn_baro = ', nn_baro 
     990         IF(lwp) WRITE(numout,*) '     ln_ts_auto=.false.: Use nn_e in namelist   nn_e = ', nn_e 
    990991      ENDIF 
    991992 
    992993      IF(ln_bt_av) THEN 
    993          IF(lwp) WRITE(numout,*) '     ln_bt_av =.true.  ==> Time averaging over nn_baro time steps is on ' 
     994         IF(lwp) WRITE(numout,*) '     ln_bt_av =.true.  ==> Time averaging over nn_e time steps is on ' 
    994995      ELSE 
    995996         IF(lwp) WRITE(numout,*) '     ln_bt_av =.false. => No time averaging of barotropic variables ' 
     
    10111012      SELECT CASE ( nn_bt_flt ) 
    10121013         CASE( 0 )      ;   IF(lwp) WRITE(numout,*) '           Dirac' 
    1013          CASE( 1 )      ;   IF(lwp) WRITE(numout,*) '           Boxcar: width = nn_baro' 
    1014          CASE( 2 )      ;   IF(lwp) WRITE(numout,*) '           Boxcar: width = 2*nn_baro'  
     1014         CASE( 1 )      ;   IF(lwp) WRITE(numout,*) '           Boxcar: width = nn_e' 
     1015         CASE( 2 )      ;   IF(lwp) WRITE(numout,*) '           Boxcar: width = 2*nn_e'  
    10151016         CASE DEFAULT   ;   CALL ctl_stop( 'unrecognised value for nn_bt_flt: should 0,1, or 2' ) 
    10161017      END SELECT 
    10171018      ! 
    10181019      IF(lwp) WRITE(numout,*) ' ' 
    1019       IF(lwp) WRITE(numout,*) '     nn_baro = ', nn_baro 
    1020       IF(lwp) WRITE(numout,*) '     Barotropic time step [s] is :', rdtbt 
     1020      IF(lwp) WRITE(numout,*) '     nn_e = ', nn_e 
     1021      IF(lwp) WRITE(numout,*) '     Barotropic time step [s] is :', rDt_e 
    10211022      IF(lwp) WRITE(numout,*) '     Maximum Courant number is   :', zcmax 
    10221023      ! 
     
    10301031      ENDIF 
    10311032      IF( zcmax>0.9_wp ) THEN 
    1032          CALL ctl_stop( 'dynspg_ts ERROR: Maximum Courant number is greater than 0.9: Inc. nn_baro !' )           
     1033         CALL ctl_stop( 'dynspg_ts ERROR: Maximum Courant number is greater than 0.9: Inc. nn_e !' )           
    10331034      ENDIF 
    10341035      ! 
     
    14291430      ! 
    14301431      IF( ln_wd_il ) THEN      ! W/D : use the "clipped" bottom friction   !!gm   explain WHY, please ! 
    1431          zztmp = -1._wp / rdtbt 
     1432         zztmp = -1._wp / rDt_e 
    14321433         DO_2D_00_00 
    14331434            pu_RHSi(ji,jj) = pu_RHSi(ji,jj) + zu_i(ji,jj) *  wdrampu(ji,jj) * MAX(                                 &  
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DYN/dynzdf.F90

    r12377 r12495  
    9292         ENDIF 
    9393      ENDIF 
    94       !                             !* set time step 
    95       IF( neuler == 0 .AND. kt == nit000     ) THEN   ;   r2dt =      rdt   ! = rdt (restart with Euler time stepping) 
    96       ELSEIF(               kt <= nit000 + 1 ) THEN   ;   r2dt = 2. * rdt   ! = 2 rdt (leapfrog) 
    97       ENDIF 
    98       ! 
    9994      !                             !* explicit top/bottom drag case 
    10095      IF( .NOT.ln_drgimp )   CALL zdf_drg_exp( kt, Kmm, puu(:,:,:,Kbb), pvv(:,:,:,Kbb), puu(:,:,:,Krhs), pvv(:,:,:,Krhs) )  ! add top/bottom friction trend to (puu(Kaa),pvv(Kaa)) 
     
    112107      IF( ln_dynadv_vec .OR. ln_linssh ) THEN   ! applied on velocity 
    113108         DO jk = 1, jpkm1 
    114             puu(:,:,jk,Kaa) = ( puu(:,:,jk,Kbb) + r2dt * puu(:,:,jk,Krhs) ) * umask(:,:,jk) 
    115             pvv(:,:,jk,Kaa) = ( pvv(:,:,jk,Kbb) + r2dt * pvv(:,:,jk,Krhs) ) * vmask(:,:,jk) 
     109            puu(:,:,jk,Kaa) = ( puu(:,:,jk,Kbb) + rDt * puu(:,:,jk,Krhs) ) * umask(:,:,jk) 
     110            pvv(:,:,jk,Kaa) = ( pvv(:,:,jk,Kbb) + rDt * pvv(:,:,jk,Krhs) ) * vmask(:,:,jk) 
    116111         END DO 
    117112      ELSE                                      ! applied on thickness weighted velocity 
    118113         DO jk = 1, jpkm1 
    119114            puu(:,:,jk,Kaa) = (         e3u(:,:,jk,Kbb) * puu(:,:,jk,Kbb)  & 
    120                &          + r2dt * e3u(:,:,jk,Kmm) * puu(:,:,jk,Krhs)  ) / e3u(:,:,jk,Kaa) * umask(:,:,jk) 
     115               &          + rDt * e3u(:,:,jk,Kmm) * puu(:,:,jk,Krhs)  ) / e3u(:,:,jk,Kaa) * umask(:,:,jk) 
    121116            pvv(:,:,jk,Kaa) = (         e3v(:,:,jk,Kbb) * pvv(:,:,jk,Kbb)  & 
    122                &          + r2dt * e3v(:,:,jk,Kmm) * pvv(:,:,jk,Krhs)  ) / e3v(:,:,jk,Kaa) * vmask(:,:,jk) 
     117               &          + rDt * e3v(:,:,jk,Kmm) * pvv(:,:,jk,Krhs)  ) / e3v(:,:,jk,Kaa) * vmask(:,:,jk) 
    123118         END DO 
    124119      ENDIF 
     
    138133            ze3ua =  ( 1._wp - r_vvl ) * e3u(ji,jj,iku,Kmm) + r_vvl * e3u(ji,jj,iku,Kaa) 
    139134            ze3va =  ( 1._wp - r_vvl ) * e3v(ji,jj,ikv,Kmm) + r_vvl * e3v(ji,jj,ikv,Kaa) 
    140             puu(ji,jj,iku,Kaa) = puu(ji,jj,iku,Kaa) + r2dt * 0.5*( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) ) * uu_b(ji,jj,Kaa) / ze3ua 
    141             pvv(ji,jj,ikv,Kaa) = pvv(ji,jj,ikv,Kaa) + r2dt * 0.5*( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) ) * vv_b(ji,jj,Kaa) / ze3va 
     135            puu(ji,jj,iku,Kaa) = puu(ji,jj,iku,Kaa) + rDt * 0.5*( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) ) * uu_b(ji,jj,Kaa) / ze3ua 
     136            pvv(ji,jj,ikv,Kaa) = pvv(ji,jj,ikv,Kaa) + rDt * 0.5*( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) ) * vv_b(ji,jj,Kaa) / ze3va 
    142137         END_2D 
    143138         IF( ln_isfcav ) THEN    ! Ocean cavities (ISF) 
     
    147142               ze3ua =  ( 1._wp - r_vvl ) * e3u(ji,jj,iku,Kmm) + r_vvl * e3u(ji,jj,iku,Kaa) 
    148143               ze3va =  ( 1._wp - r_vvl ) * e3v(ji,jj,ikv,Kmm) + r_vvl * e3v(ji,jj,ikv,Kaa) 
    149                puu(ji,jj,iku,Kaa) = puu(ji,jj,iku,Kaa) + r2dt * 0.5*( rCdU_top(ji+1,jj)+rCdU_top(ji,jj) ) * uu_b(ji,jj,Kaa) / ze3ua 
    150                pvv(ji,jj,ikv,Kaa) = pvv(ji,jj,ikv,Kaa) + r2dt * 0.5*( rCdU_top(ji,jj+1)+rCdU_top(ji,jj) ) * vv_b(ji,jj,Kaa) / ze3va 
     144               puu(ji,jj,iku,Kaa) = puu(ji,jj,iku,Kaa) + rDt * 0.5*( rCdU_top(ji+1,jj)+rCdU_top(ji,jj) ) * uu_b(ji,jj,Kaa) / ze3ua 
     145               pvv(ji,jj,ikv,Kaa) = pvv(ji,jj,ikv,Kaa) + rDt * 0.5*( rCdU_top(ji,jj+1)+rCdU_top(ji,jj) ) * vv_b(ji,jj,Kaa) / ze3va 
    151146            END_2D 
    152147         END IF 
     
    156151      ! 
    157152      !                    !* Matrix construction 
    158       zdt = r2dt * 0.5 
     153      zdt = rDt * 0.5 
    159154      IF( ln_zad_Aimp ) THEN   !! 
    160155         SELECT CASE( nldf_dyn ) 
     
    232227            iku = mbku(ji,jj)       ! ocean bottom level at u- and v-points 
    233228            ze3ua =  ( 1._wp - r_vvl ) * e3u(ji,jj,iku,Kmm) + r_vvl * e3u(ji,jj,iku,Kaa)   ! after scale factor at T-point 
    234             zwd(ji,jj,iku) = zwd(ji,jj,iku) - r2dt * 0.5*( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) ) / ze3ua 
     229            zwd(ji,jj,iku) = zwd(ji,jj,iku) - rDt * 0.5*( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) ) / ze3ua 
    235230         END_2D 
    236231         IF ( ln_isfcav ) THEN   ! top friction (always implicit) 
     
    239234               iku = miku(ji,jj)       ! ocean top level at u- and v-points  
    240235               ze3ua =  ( 1._wp - r_vvl ) * e3u(ji,jj,iku,Kmm) + r_vvl * e3u(ji,jj,iku,Kaa)   ! after scale factor at T-point 
    241                zwd(ji,jj,iku) = zwd(ji,jj,iku) - r2dt * 0.5*( rCdU_top(ji+1,jj)+rCdU_top(ji,jj) ) / ze3ua 
     236               zwd(ji,jj,iku) = zwd(ji,jj,iku) - rDt * 0.5*( rCdU_top(ji+1,jj)+rCdU_top(ji,jj) ) / ze3ua 
    242237            END_2D 
    243238         END IF 
     
    265260      DO_2D_00_00 
    266261         ze3ua =  ( 1._wp - r_vvl ) * e3u(ji,jj,1,Kmm) + r_vvl * e3u(ji,jj,1,Kaa)  
    267          puu(ji,jj,1,Kaa) = puu(ji,jj,1,Kaa) + r2dt * 0.5_wp * ( utau_b(ji,jj) + utau(ji,jj) )   & 
    268             &                                      / ( ze3ua * rau0 ) * umask(ji,jj,1)  
     262         puu(ji,jj,1,Kaa) = puu(ji,jj,1,Kaa) + rDt * 0.5_wp * ( utau_b(ji,jj) + utau(ji,jj) )   & 
     263            &                                      / ( ze3ua * rho0 ) * umask(ji,jj,1)  
    269264      END_2D 
    270265      DO_3D_00_00( 2, jpkm1 ) 
     
    282277      ! 
    283278      !                       !* Matrix construction 
    284       zdt = r2dt * 0.5 
     279      zdt = rDt * 0.5 
    285280      IF( ln_zad_Aimp ) THEN   !! 
    286281         SELECT CASE( nldf_dyn ) 
     
    357352            ikv = mbkv(ji,jj)       ! (deepest ocean u- and v-points) 
    358353            ze3va =  ( 1._wp - r_vvl ) * e3v(ji,jj,ikv,Kmm) + r_vvl * e3v(ji,jj,ikv,Kaa)   ! after scale factor at T-point 
    359             zwd(ji,jj,ikv) = zwd(ji,jj,ikv) - r2dt * 0.5*( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) ) / ze3va            
     354            zwd(ji,jj,ikv) = zwd(ji,jj,ikv) - rDt * 0.5*( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) ) / ze3va            
    360355         END_2D 
    361356         IF ( ln_isfcav ) THEN 
     
    363358               ikv = mikv(ji,jj)       ! (first wet ocean u- and v-points) 
    364359               ze3va =  ( 1._wp - r_vvl ) * e3v(ji,jj,ikv,Kmm) + r_vvl * e3v(ji,jj,ikv,Kaa)   ! after scale factor at T-point 
    365                zwd(ji,jj,ikv) = zwd(ji,jj,ikv) - r2dt * 0.5*( rCdU_top(ji,jj+1)+rCdU_top(ji,jj) ) / ze3va 
     360               zwd(ji,jj,ikv) = zwd(ji,jj,ikv) - rDt * 0.5*( rCdU_top(ji,jj+1)+rCdU_top(ji,jj) ) / ze3va 
    366361            END_2D 
    367362         ENDIF 
     
    389384      DO_2D_00_00 
    390385         ze3va =  ( 1._wp - r_vvl ) * e3v(ji,jj,1,Kmm) + r_vvl * e3v(ji,jj,1,Kaa)  
    391          pvv(ji,jj,1,Kaa) = pvv(ji,jj,1,Kaa) + r2dt * 0.5_wp * ( vtau_b(ji,jj) + vtau(ji,jj) )   & 
    392             &                                      / ( ze3va * rau0 ) * vmask(ji,jj,1)  
     386         pvv(ji,jj,1,Kaa) = pvv(ji,jj,1,Kaa) + rDt * 0.5_wp * ( vtau_b(ji,jj) + vtau(ji,jj) )   & 
     387            &                                      / ( ze3va * rho0 ) * vmask(ji,jj,1)  
    393388      END_2D 
    394389      DO_3D_00_00( 2, jpkm1 ) 
     
    404399      ! 
    405400      IF( l_trddyn )   THEN                      ! save the vertical diffusive trends for further diagnostics 
    406          ztrdu(:,:,:) = ( puu(:,:,:,Kaa) - puu(:,:,:,Kbb) ) / r2dt - ztrdu(:,:,:) 
    407          ztrdv(:,:,:) = ( pvv(:,:,:,Kaa) - pvv(:,:,:,Kbb) ) / r2dt - ztrdv(:,:,:) 
     401         ztrdu(:,:,:) = ( puu(:,:,:,Kaa) - puu(:,:,:,Kbb) ) / rDt - ztrdu(:,:,:) 
     402         ztrdv(:,:,:) = ( pvv(:,:,:,Kaa) - pvv(:,:,:,Kbb) ) / rDt - ztrdv(:,:,:) 
    408403         CALL trd_dyn( ztrdu, ztrdv, jpdyn_zdf, kt, Kmm ) 
    409404         DEALLOCATE( ztrdu, ztrdv )  
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DYN/sshwzv.F90

    r12377 r12495  
    7575      REAL(wp), DIMENSION(jpi,jpj,jpt), INTENT(inout) ::   pssh           ! sea-surface height 
    7676      !  
    77       INTEGER  ::   jk            ! dummy loop indice 
    78       REAL(wp) ::   z2dt, zcoef   ! local scalars 
     77      INTEGER  ::   jk      ! dummy loop index 
     78      REAL(wp) ::   zcoef   ! local scalar 
    7979      REAL(wp), DIMENSION(jpi,jpj) ::   zhdiv   ! 2D workspace 
    8080      !!---------------------------------------------------------------------- 
     
    8888      ENDIF 
    8989      ! 
    90       z2dt = 2._wp * rdt                          ! set time step size (Euler/Leapfrog) 
    91       IF( neuler == 0 .AND. kt == nit000 )   z2dt = rdt 
    92       zcoef = 0.5_wp * r1_rau0 
     90      zcoef = 0.5_wp * r1_rho0 
    9391 
    9492      !                                           !------------------------------! 
     
    9694      !                                           !------------------------------! 
    9795      IF(ln_wd_il) THEN 
    98          CALL wad_lmt(pssh(:,:,Kbb), zcoef * (emp_b(:,:) + emp(:,:)), z2dt, Kmm, uu, vv ) 
     96         CALL wad_lmt(pssh(:,:,Kbb), zcoef * (emp_b(:,:) + emp(:,:)), rDt, Kmm, uu, vv ) 
    9997      ENDIF 
    10098 
     
    109107      ! compute the vertical velocity which can be used to compute the non-linear terms of the momentum equations. 
    110108      !  
    111       pssh(:,:,Kaa) = (  pssh(:,:,Kbb) - z2dt * ( zcoef * ( emp_b(:,:) + emp(:,:) ) + zhdiv(:,:) )  ) * ssmask(:,:) 
     109      pssh(:,:,Kaa) = (  pssh(:,:,Kbb) - rDt * ( zcoef * ( emp_b(:,:) + emp(:,:) ) + zhdiv(:,:) )  ) * ssmask(:,:) 
    112110      ! 
    113111#if defined key_agrif 
     
    152150      ! 
    153151      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    154       REAL(wp) ::   z1_2dt       ! local scalars 
    155152      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   zhdiv 
    156153      !!---------------------------------------------------------------------- 
     
    168165      !                                           !     Now Vertical Velocity    ! 
    169166      !                                           !------------------------------! 
    170       z1_2dt = 1. / ( 2. * rdt )                         ! set time step size (Euler/Leapfrog) 
    171       IF( neuler == 0 .AND. kt == nit000 )   z1_2dt = 1. / rdt 
    172167      ! 
    173168      IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN      ! z_tilde and layer cases 
     
    187182            ! computation of w 
    188183            pww(:,:,jk) = pww(:,:,jk+1) - (  e3t(:,:,jk,Kmm) * hdiv(:,:,jk) + zhdiv(:,:,jk)    & 
    189                &                         + z1_2dt * ( e3t(:,:,jk,Kaa) - e3t(:,:,jk,Kbb) )     ) * tmask(:,:,jk) 
     184               &                         + r1_Dt * ( e3t(:,:,jk,Kaa) - e3t(:,:,jk,Kbb) )     ) * tmask(:,:,jk) 
    190185         END DO 
    191186         !          IF( ln_vvl_layer ) pww(:,:,:) = 0.e0 
     
    195190            ! computation of w 
    196191            pww(:,:,jk) = pww(:,:,jk+1) - (  e3t(:,:,jk,Kmm) * hdiv(:,:,jk)                 & 
    197                &                         + z1_2dt * ( e3t(:,:,jk,Kaa) - e3t(:,:,jk,Kbb) )  ) * tmask(:,:,jk) 
     192               &                         + r1_Dt * ( e3t(:,:,jk,Kaa) - e3t(:,:,jk,Kbb) )  ) * tmask(:,:,jk) 
    198193         END DO 
    199194      ENDIF 
     
    227222      !! ** Method  : - apply Asselin time fiter to now ssh (excluding the forcing 
    228223      !!              from the filter, see Leclair and Madec 2010) and swap : 
    229       !!                pssh(:,:,Kmm) = pssh(:,:,Kaa) + atfp * ( pssh(:,:,Kbb) -2 pssh(:,:,Kmm) + pssh(:,:,Kaa) ) 
    230       !!                            - atfp * rdt * ( emp_b - emp ) / rau0 
     224      !!                pssh(:,:,Kmm) = pssh(:,:,Kaa) + rn_atfp * ( pssh(:,:,Kbb) -2 pssh(:,:,Kmm) + pssh(:,:,Kaa) ) 
     225      !!                            - rn_atfp * rn_Dt * ( emp_b - emp ) / rho0 
    231226      !! 
    232227      !! ** action  : - pssh(:,:,Kmm) time filtered 
     
    249244      ENDIF 
    250245      !              !==  Euler time-stepping: no filter, just swap  ==! 
    251       IF ( .NOT.( neuler == 0 .AND. kt == nit000 ) ) THEN   ! Only do time filtering for leapfrog timesteps 
     246      IF ( .NOT.( l_1st_euler ) ) THEN   ! Only do time filtering for leapfrog timesteps 
    252247         !                                                  ! filtered "now" field 
    253          pssh(:,:,Kmm) = pssh(:,:,Kmm) + atfp * ( pssh(:,:,Kbb) - 2 * pssh(:,:,Kmm) + pssh(:,:,Kaa) ) 
     248         pssh(:,:,Kmm) = pssh(:,:,Kmm) + rn_atfp * ( pssh(:,:,Kbb) - 2 * pssh(:,:,Kmm) + pssh(:,:,Kaa) ) 
    254249         IF( .NOT.ln_linssh ) THEN                          ! "now" <-- with forcing removed 
    255             zcoef = atfp * rdt * r1_rau0 
     250            zcoef = rn_atfp * rn_Dt * r1_rho0 
    256251            pssh(:,:,Kmm) = pssh(:,:,Kmm) - zcoef * (     emp_b(:,:) - emp   (:,:)   & 
    257252               &                             - rnf_b(:,:)        + rnf   (:,:)       & 
     
    260255 
    261256            ! ice sheet coupling 
    262             IF ( ln_isf .AND. ln_isfcpl .AND. kt == nit000+1) pssh(:,:,Kbb) = pssh(:,:,Kbb) - atfp * rdt * ( risfcpl_ssh(:,:) - 0.0 ) * ssmask(:,:) 
     257            IF ( ln_isf .AND. ln_isfcpl .AND. kt == nit000+1) pssh(:,:,Kbb) = pssh(:,:,Kbb) - rn_atfp * rn_Dt * ( risfcpl_ssh(:,:) - 0.0 ) * ssmask(:,:) 
    263258 
    264259         ENDIF 
     
    311306         DO_3D_00_00( 1, jpkm1 ) 
    312307            z1_e3t = 1._wp / e3t(ji,jj,jk,Kmm) 
    313             ! 2*rdt and not r2dt (for restartability) 
    314             Cu_adv(ji,jj,jk) = 2._wp * rdt * ( ( MAX( ww(ji,jj,jk) , 0._wp ) - MIN( ww(ji,jj,jk+1) , 0._wp ) )                       &   
     308            ! 2*rn_Dt and not rDt (for restartability) 
     309            Cu_adv(ji,jj,jk) = 2._wp * rn_Dt * ( ( MAX( ww(ji,jj,jk) , 0._wp ) - MIN( ww(ji,jj,jk+1) , 0._wp ) )                       &   
    315310               &                             + ( MAX( e2u(ji  ,jj)*e3u(ji  ,jj,jk,Kmm)*uu(ji  ,jj,jk,Kmm) + un_td(ji  ,jj,jk), 0._wp ) -   & 
    316311               &                                 MIN( e2u(ji-1,jj)*e3u(ji-1,jj,jk,Kmm)*uu(ji-1,jj,jk,Kmm) + un_td(ji-1,jj,jk), 0._wp ) )   & 
     
    324319         DO_3D_00_00( 1, jpkm1 ) 
    325320            z1_e3t = 1._wp / e3t(ji,jj,jk,Kmm) 
    326             ! 2*rdt and not r2dt (for restartability) 
    327             Cu_adv(ji,jj,jk) = 2._wp * rdt * ( ( MAX( ww(ji,jj,jk) , 0._wp ) - MIN( ww(ji,jj,jk+1) , 0._wp ) )   &  
     321            ! 2*rn_Dt and not rDt (for restartability) 
     322            Cu_adv(ji,jj,jk) = 2._wp * rn_Dt * ( ( MAX( ww(ji,jj,jk) , 0._wp ) - MIN( ww(ji,jj,jk+1) , 0._wp ) )   &  
    328323               &                             + ( MAX( e2u(ji  ,jj)*e3u(ji  ,jj,jk,Kmm)*uu(ji  ,jj,jk,Kmm), 0._wp ) -   & 
    329324               &                                 MIN( e2u(ji-1,jj)*e3u(ji-1,jj,jk,Kmm)*uu(ji-1,jj,jk,Kmm), 0._wp ) )   & 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/DYN/wet_dry.F90

    r12377 r12495  
    270270 
    271271 
    272    SUBROUTINE wad_lmt_bt( zflxu, zflxv, sshn_e, zssh_frc, rdtbt ) 
     272   SUBROUTINE wad_lmt_bt( zflxu, zflxv, sshn_e, zssh_frc, rDt_e ) 
    273273      !!---------------------------------------------------------------------- 
    274274      !!                  ***  ROUTINE wad_lmt  *** 
     
    280280      !! ** Action  : - calculate flux limiter and W/D flag 
    281281      !!---------------------------------------------------------------------- 
    282       REAL(wp)                , INTENT(in   ) ::   rdtbt    ! ocean time-step index 
     282      REAL(wp)                , INTENT(in   ) ::   rDt_e    ! ocean time-step index 
    283283      REAL(wp), DIMENSION(:,:), INTENT(inout) ::   zflxu,  zflxv, sshn_e, zssh_frc   
    284284      ! 
     
    299299      zdepwd = 50._wp   ! maximum depth that ocean cells can have W/D processes 
    300300      ! 
    301       z2dt = rdtbt    
     301      z2dt = rDt_e    
    302302      ! 
    303303      zflxp(:,:)   = 0._wp 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/FLO/flo4rk.F90

    r12377 r12495  
    130130         ! computation of Runge-Kutta factor 
    131131         DO jfl = 1, jpnfl 
    132             zrkxfl(jfl,jind) = rdt*zufl(jfl) 
    133             zrkyfl(jfl,jind) = rdt*zvfl(jfl) 
    134             zrkzfl(jfl,jind) = rdt*zwfl(jfl) 
     132            zrkxfl(jfl,jind) = rn_Dt*zufl(jfl) 
     133            zrkyfl(jfl,jind) = rn_Dt*zvfl(jfl) 
     134            zrkzfl(jfl,jind) = rn_Dt*zwfl(jfl) 
    135135         END DO 
    136136         IF( jind /= 4 ) THEN 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/FLO/floblk.F90

    r12377 r12495  
    233233            ! test to know if the "age" of the float is not bigger than the  
    234234            ! time step 
    235             IF( zagenewfl(jfl) > rdt ) THEN 
    236                zttfl(jfl) = (rdt-zagefl(jfl)) / zvol 
    237                zagenewfl(jfl) = rdt 
     235            IF( zagenewfl(jfl) > rn_Dt ) THEN 
     236               zttfl(jfl) = (rn_Dt-zagefl(jfl)) / zvol 
     237               zagenewfl(jfl) = rn_Dt 
    238238            ENDIF 
    239239             
     
    340340         ifin = 1 
    341341         DO jfl = 1, jpnfl 
    342             IF( zagefl(jfl) < rdt )   ifin = 0 
     342            IF( zagefl(jfl) < rn_Dt )   ifin = 0 
    343343            tpifl(jfl) = zgifl(jfl) + 0.5 
    344344            tpjfl(jfl) = zgjfl(jfl) + 0.5 
     
    347347         ifin = 1 
    348348         DO jfl = 1, jpnfl 
    349             IF( zagefl(jfl) < rdt )   ifin = 0 
     349            IF( zagefl(jfl) < rn_Dt )   ifin = 0 
    350350            tpifl(jfl) = zgifl(jfl) + 0.5 
    351351            tpjfl(jfl) = zgjfl(jfl) + 0.5 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/FLO/flowri.F90

    r12377 r12495  
    122122               ztem(jfl) = ts(iafloc,ibfloc,icfl,jp_tem,Kmm) 
    123123               zsal (jfl) = ts(iafloc,ibfloc,icfl,jp_sal,Kmm) 
    124                zrho (jfl) = (rhd(iafloc,ibfloc,icfl)+1)*rau0 
     124               zrho (jfl) = (rhd(iafloc,ibfloc,icfl)+1)*rho0 
    125125 
    126126            ENDIF 
     
    142142            ztem(jfl) = ts(iafloc,ibfloc,icfl,jp_tem,Kmm) 
    143143            zsal(jfl) = ts(iafloc,ibfloc,icfl,jp_sal,Kmm) 
    144             zrho(jfl) = (rhd(iafloc,ibfloc,icfl)+1)*rau0 
     144            zrho(jfl) = (rhd(iafloc,ibfloc,icfl)+1)*rho0 
    145145           
    146146         ENDIF 
     
    245245            !------------------------------- 
    246246            irec =  INT( (kt-nn_it000+1)/nn_writefl ) +1 
    247             ztime = ( kt-nn_it000 + 1 ) * rdt 
     247            ztime = ( kt-nn_it000 + 1 ) * rn_Dt 
    248248 
    249249            CALL flioputv( numflo , 'time_counter', ztime , start=(/irec/) ) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/ICB/icbini.F90

    r12472 r12495  
    6060      !!              - setup either test icebergs or calving file 
    6161      !!---------------------------------------------------------------------- 
    62       REAL(wp), INTENT(in) ::   pdt   ! iceberg time-step (rdt*nn_fsbc) 
     62      REAL(wp), INTENT(in) ::   pdt   ! iceberg time-step (rn_Dt*nn_fsbc) 
    6363      INTEGER , INTENT(in) ::   kt    ! time step number 
    6464      ! 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/ICB/icbtrj.F90

    r10068 r12495  
    7474 
    7575      ! compute end time step date 
    76       zfjulday = fjulday + rdt / rday * REAL( nitend - nit000 + 1 , wp) 
     76      zfjulday = fjulday + rn_Dt / rday * REAL( nitend - nit000 + 1 , wp) 
    7777      IF( ABS(zfjulday - REAL(NINT(zfjulday),wp)) < 0.1 / rday )   zfjulday = REAL(NINT(zfjulday),wp)   ! avoid truncation error 
    7878      CALL ju2ymds( zfjulday, iyear, imonth, iday, zsec ) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/IOM/iom.F90

    r12377 r12495  
    274274      ! 
    275275      ! set time step length 
    276       dtime%second = rdt 
     276      dtime%second = rn_Dt 
    277277      CALL xios_set_timestep( dtime ) 
    278278      ! 
     
    410410   IF(cdmdl == "OPA") THEN 
    411411!from restart.F90 
    412    CALL iom_set_rstw_var_active("rdt") 
     412   CALL iom_set_rstw_var_active("rn_Dt") 
    413413   IF ( .NOT. ln_diurnal_only ) THEN 
    414414        CALL iom_set_rstw_var_active('ub'  ) 
     
    448448 
    449449        i = 0 
    450         i = i + 1; fields(i)%vname="rdt";            fields(i)%grid="grid_scalar" 
     450        i = i + 1; fields(i)%vname="rn_Dt";            fields(i)%grid="grid_scalar" 
    451451        i = i + 1; fields(i)%vname="un";             fields(i)%grid="grid_N_3D" 
    452452        i = i + 1; fields(i)%vname="ub";             fields(i)%grid="grid_N_3D" 
     
    23582358            idx = INDEX(clname,'@startdate@') + INDEX(clname,'@STARTDATE@') 
    23592359            DO WHILE ( idx /= 0 )  
    2360                cldate = iom_sdate( fjulday - rdt / rday ) 
     2360               cldate = iom_sdate( fjulday - rn_Dt / rday ) 
    23612361               clname = clname(1:idx-1)//TRIM(cldate)//clname(idx+11:LEN_TRIM(clname)) 
    23622362               idx = INDEX(clname,'@startdate@') + INDEX(clname,'@STARTDATE@') 
     
    23652365            idx = INDEX(clname,'@startdatefull@') + INDEX(clname,'@STARTDATEFULL@') 
    23662366            DO WHILE ( idx /= 0 )  
    2367                cldate = iom_sdate( fjulday - rdt / rday, ldfull = .TRUE. ) 
     2367               cldate = iom_sdate( fjulday - rn_Dt / rday, ldfull = .TRUE. ) 
    23682368               clname = clname(1:idx-1)//TRIM(cldate)//clname(idx+15:LEN_TRIM(clname)) 
    23692369               idx = INDEX(clname,'@startdatefull@') + INDEX(clname,'@STARTDATEFULL@') 
     
    23722372            idx = INDEX(clname,'@enddate@') + INDEX(clname,'@ENDDATE@') 
    23732373            DO WHILE ( idx /= 0 )  
    2374                cldate = iom_sdate( fjulday + rdt / rday * REAL( nitend - nit000, wp ), ld24 = .TRUE. ) 
     2374               cldate = iom_sdate( fjulday + rn_Dt / rday * REAL( nitend - nit000, wp ), ld24 = .TRUE. ) 
    23752375               clname = clname(1:idx-1)//TRIM(cldate)//clname(idx+9:LEN_TRIM(clname)) 
    23762376               idx = INDEX(clname,'@enddate@') + INDEX(clname,'@ENDDATE@') 
     
    23792379            idx = INDEX(clname,'@enddatefull@') + INDEX(clname,'@ENDDATEFULL@') 
    23802380            DO WHILE ( idx /= 0 )  
    2381                cldate = iom_sdate( fjulday + rdt / rday * REAL( nitend - nit000, wp ), ld24 = .TRUE., ldfull = .TRUE. ) 
     2381               cldate = iom_sdate( fjulday + rn_Dt / rday * REAL( nitend - nit000, wp ), ld24 = .TRUE., ldfull = .TRUE. ) 
    23822382               clname = clname(1:idx-1)//TRIM(cldate)//clname(idx+13:LEN_TRIM(clname)) 
    23832383               idx = INDEX(clname,'@enddatefull@') + INDEX(clname,'@ENDDATEFULL@') 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/IOM/restart.F90

    r12377 r12495  
    144144      !!---------------------------------------------------------------------- 
    145145                     IF(lwxios) CALL iom_swap(      cwxios_context          ) 
    146                      CALL iom_rstput( kt, nitrst, numrow, 'rdt'    , rdt       , ldxios = lwxios)   ! dynamics time step 
     146                     CALL iom_rstput( kt, nitrst, numrow, 'rdt'    , rn_Dt       , ldxios = lwxios)   ! dynamics time step 
    147147                     CALL iom_delay_rst( 'WRITE', 'OCE', numrow )   ! save only ocean delayed global communication variables 
    148148 
     
    247247      IF( iom_varid( numror, 'rdt', ldstop = .FALSE. ) > 0 )   THEN 
    248248         CALL iom_get( numror, 'rdt', zrdt, ldxios = lrxios ) 
    249          IF( zrdt /= rdt )   neuler = 0 
     249         IF( zrdt /= rn_Dt ) THEN 
     250            IF(lwp) WRITE( numout,*) 
     251            IF(lwp) WRITE( numout,*) 'rst_read:  rdt not equal to the read one' 
     252            IF(lwp) WRITE( numout,*) 
     253            IF(lwp) WRITE( numout,*) '      ==>>>   forced euler first time-step' 
     254            l_1st_euler =  .TRUE. 
     255         ENDIF 
    250256      ENDIF 
    251257 
     
    256262      IF ( ln_diurnal_only ) THEN  
    257263         IF(lwp) WRITE( numout, * ) & 
    258          &   "rst_read:- ln_diurnal_only set, setting rhop=rau0"  
    259          rhop = rau0 
     264         &   "rst_read:- ln_diurnal_only set, setting rhop=rho0"  
     265         rhop = rho0 
    260266         CALL iom_get( numror, jpdom_autoglo, 'tn'     , w3d, ldxios = lrxios )  
    261267         ts(:,:,1,jp_tem,Kmm) = w3d(:,:,1) 
     
    270276         CALL iom_get( numror, jpdom_autoglo, 'sshb'   ,ssh(:,:         ,Kbb), ldxios = lrxios ) 
    271277      ELSE 
    272          neuler = 0 
     278         l_1st_euler =  .TRUE.      ! before field not found, forced euler 1st time-step 
    273279      ENDIF 
    274280      ! 
     
    284290      ENDIF 
    285291      ! 
    286       IF( neuler == 0 ) THEN                                  ! Euler restart (neuler=0) 
     292      IF( l_1st_euler ) THEN                                  ! Euler restart  
    287293         ts   (:,:,:,:,Kbb) = ts   (:,:,:,:,Kmm)              ! all before fields set to now values 
    288294         uu   (:,:,:  ,Kbb) = uu   (:,:,:  ,Kmm) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/ISF/isfcav.F90

    r12343 r12495  
    2424   USE oce      , ONLY: ts                              ! ocean tracers 
    2525   USE par_oce  , ONLY: jpi,jpj                         ! ocean space and time domain 
    26    USE phycst   , ONLY: grav,rau0,rau0_rcp,r1_rau0_rcp  ! physical constants 
     26   USE phycst   , ONLY: grav,rho0,rho0_rcp,r1_rho0_rcp  ! physical constants 
    2727   USE eosbn2   , ONLY: ln_teos10                       ! use ln_teos10 or not 
    2828   ! 
     
    8585      ! 
    8686      ! initialisation 
    87       IF (TRIM(cn_gammablk) == 'vel_stab' ) zqoce_b (:,:) = ptsc(:,:,jp_tem) * rau0_rcp ! last time step total heat fluxes (to speed up convergence) 
     87      IF (TRIM(cn_gammablk) == 'vel_stab' ) zqoce_b (:,:) = ptsc(:,:,jp_tem) * rho0_rcp ! last time step total heat fluxes (to speed up convergence) 
    8888      ! 
    8989      ! compute ice shelf melting 
     
    142142      ! 
    143143      ! set temperature content 
    144       ptsc(:,:,jp_tem) = - zqh(:,:) * r1_rau0_rcp 
     144      ptsc(:,:,jp_tem) = - zqh(:,:) * r1_rho0_rcp 
    145145      ! 
    146146      ! write restart variables (qoceisf, qhcisf, fwfisf for now and before) 
     
    215215            risf_lamb1 =-0.0564_wp 
    216216            risf_lamb2 = 0.0773_wp 
    217             risf_lamb3 =-7.8633e-8 * grav * rau0 
     217            risf_lamb3 =-7.8633e-8 * grav * rho0 
    218218         ELSE                  ! linearisation from table 4 (Asay-Davis et al., 2015) 
    219219            risf_lamb1 =-0.0573_wp 
    220220            risf_lamb2 = 0.0832_wp 
    221             risf_lamb3 =-7.5300e-8 * grav * rau0 
     221            risf_lamb3 =-7.5300e-8 * grav * rho0 
    222222         ENDIF 
    223223 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/ISF/isfcavmlt.F90

    r12340 r12495  
    1717 
    1818   USE dom_oce                            ! ocean space and time domain 
    19    USE phycst , ONLY: rcp, rau0, rau0_rcp ! physical constants 
     19   USE phycst , ONLY: rcp, rho0, rho0_rcp ! physical constants 
    2020   USE eosbn2 , ONLY: eos_fzp             ! equation of state 
    2121 
     
    161161      ! 
    162162      ! compute ocean-ice heat flux and then derive fwf assuming that ocean heat flux equal latent heat 
    163       pqfwf(:,:) = - pgt(:,:) * rau0_rcp * zthd(:,:) / rLfusisf    ! fresh water flux  ( > 0 out ) 
     163      pqfwf(:,:) = - pgt(:,:) * rho0_rcp * zthd(:,:) / rLfusisf    ! fresh water flux  ( > 0 out ) 
    164164      pqoce(:,:) = - pqfwf(:,:) * rLfusisf                         ! ocea-ice flux     ( > 0 out ) 
    165165      pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp                 ! heat content flux ( > 0 out ) 
     
    213213         ! 
    214214         ! compute coeficient to solve the 2nd order equation 
    215          zeps1 = rau0_rcp * pgt(ji,jj) 
    216          zeps2 = rLfusisf * rau0 * pgs(ji,jj) 
     215         zeps1 = rho0_rcp * pgt(ji,jj) 
     216         zeps2 = rLfusisf * rho0 * pgs(ji,jj) 
    217217         zeps3 = rhoisf * rcpisf * rkappa / MAX(risfdep(ji,jj),zeps) 
    218218         zeps4 = risf_lamb2 + risf_lamb3 * risfdep(ji,jj) 
     
    238238         ! 
    239239         ! compute the upward water and heat flux (eq. 24 and eq. 26) 
    240          pqfwf(ji,jj) = rau0     * pgs(ji,jj) * ( zsfrz - pstbl(ji,jj) ) / MAX(zsfrz,zeps) ! fresh water flux    (> 0 out) 
    241          pqoce(ji,jj) = rau0_rcp * pgt(ji,jj) * zthd (ji,jj)                               ! ocean-ice heat flux (> 0 out) 
     240         pqfwf(ji,jj) = rho0     * pgs(ji,jj) * ( zsfrz - pstbl(ji,jj) ) / MAX(zsfrz,zeps) ! fresh water flux    (> 0 out) 
     241         pqoce(ji,jj) = rho0_rcp * pgt(ji,jj) * zthd (ji,jj)                               ! ocean-ice heat flux (> 0 out) 
    242242         pqhc (ji,jj) = rcp      * pqfwf(ji,jj) * ztfrz(ji,jj)                             ! heat content   flux (> 0 out) 
    243243         ! 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/ISF/isfcpl.F90

    r12353 r12495  
    6868      ! 
    6969      ! start on an euler time step 
    70       neuler = 0 
     70      l_1st_euler = .TRUE. 
    7171      !  
    7272      ! allocation and initialisation to 0 
     
    502502      ! compute run length 
    503503      nstp_iscpl  = nitend - nit000 + 1 
    504       rdt_iscpl   = nstp_iscpl * rn_rdt 
     504      rdt_iscpl   = nstp_iscpl * rn_Dt 
    505505      z1_rdtiscpl = 1._wp / rdt_iscpl  
    506506 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/ISF/isfdynatf.F90

    r12372 r12495  
    1313   USE isf_oce 
    1414 
    15    USE phycst , ONLY: r1_rau0         ! physical constant 
     15   USE phycst , ONLY: r1_rho0         ! physical constant 
    1616   USE dom_oce, ONLY: tmask, ssmask, ht, e3t, r1_e1e2t   ! time and space domain 
    1717 
     
    3939      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) :: pe3t_f   ! time filtered scale factor to be corrected 
    4040      ! 
    41       REAL(wp)                        , INTENT(in   ) :: pcoef    ! atfp * rdt * r1_rau0 
     41      REAL(wp)                        , INTENT(in   ) :: pcoef    ! rn_atfp * rn_Dt * r1_rho0 
    4242      !!-------------------------------------------------------------------- 
    4343      INTEGER :: jk  ! loop index 
     
    7070      REAL(wp), DIMENSION(jpi,jpj)    , INTENT(in   ) :: pfrac, phtbl    ! fraction of bottom cell included in tbl, tbl thickness 
    7171      REAL(wp), DIMENSION(jpi,jpj)    , INTENT(in   ) :: pfwf , pfwf_b   ! now/before fwf 
    72       REAL(wp),                         INTENT(in   ) :: pcoef           ! atfp * rdt * r1_rau0 
     72      REAL(wp),                         INTENT(in   ) :: pcoef           ! rn_atfp * rn_Dt * r1_rho0 
    7373      !!---------------------------------------------------------------------- 
    7474      INTEGER :: ji,jj,jk 
     
    7777      ! 
    7878      ! compute fwf conservation correction 
    79       zfwfinc(:,:) = pcoef * ( pfwf_b(:,:) - pfwf(:,:) ) / ( ht(:,:) + 1._wp - ssmask(:,:) ) * r1_rau0 
     79      zfwfinc(:,:) = pcoef * ( pfwf_b(:,:) - pfwf(:,:) ) / ( ht(:,:) + 1._wp - ssmask(:,:) ) * r1_rho0 
    8080      ! 
    8181      ! add the increment 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/ISF/isfhdiv.F90

    r12340 r12495  
    1616 
    1717   USE dom_oce                ! time and space domain 
    18    USE phycst , ONLY: r1_rau0 ! physical constant 
     18   USE phycst , ONLY: r1_rho0 ! physical constant 
    1919   USE in_out_manager         ! 
    2020 
     
    9696      ! 
    9797      ! compute integrated divergence correction 
    98       zhdiv(:,:) = 0.5_wp * ( pfwf(:,:) + pfwf_b(:,:) ) * r1_rau0 / phtbl(:,:) 
     98      zhdiv(:,:) = 0.5_wp * ( pfwf(:,:) + pfwf_b(:,:) ) * r1_rho0 / phtbl(:,:) 
    9999      ! 
    100100      ! update divergence at each level affected by ice shelf top boundary layer 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/ISF/isfpar.F90

    r12077 r12495  
    2424   USE dom_oce  , ONLY: bathy          ! ocean space and time domain 
    2525   USE par_oce  , ONLY: jpi,jpj        ! ocean space and time domain 
    26    USE phycst   , ONLY: r1_rau0_rcp    ! physical constants 
     26   USE phycst   , ONLY: r1_rho0_rcp    ! physical constants 
    2727   ! 
    2828   USE in_out_manager ! I/O manager 
     
    8888      ! 
    8989      ! set temperature content 
    90       ptsc(:,:,jp_tem) = zqh(:,:) * r1_rau0_rcp 
     90      ptsc(:,:,jp_tem) = zqh(:,:) * r1_rho0_rcp 
    9191      ! 
    9292      ! write restart variables (qoceisf, qhcisf, fwfisf for now and before) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/ISF/isfparmlt.F90

    r12077 r12495  
    1313   USE dom_oce                  ! ocean space and time domain 
    1414   USE oce    , ONLY: ts        ! ocean dynamics and tracers 
    15    USE phycst , ONLY: rcp, rau0 ! physical constants 
     15   USE phycst , ONLY: rcp, rho0 ! physical constants 
    1616   USE eosbn2 , ONLY: eos_fzp   ! equation of state 
    1717 
     
    148148      ! 
    149149      ! 2. ------------Net heat flux and fresh water flux due to the ice shelf 
    150       pqoce(:,:) =   rau0 * rcp * rn_gammat0 * risfLeff(:,:) * e1t(:,:) * ( ztavg(:,:) - ztfrz(:,:) ) * r1_e1e2t(:,:) 
     150      pqoce(:,:) =   rho0 * rcp * rn_gammat0 * risfLeff(:,:) * e1t(:,:) * ( ztavg(:,:) - ztfrz(:,:) ) * r1_e1e2t(:,:) 
    151151      pqfwf(:,:) = - pqoce(:,:) / rLfusisf             ! derived from the latent heat flux 
    152152      pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp     ! heat content flux  
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/LDF/ldfdyn.F90

    r12377 r12495  
    407407            zcmsmag   = (rn_csmc/rpi)**2                                            ! (C_smag/pi)^2 
    408408            zstabf_lo = rn_minfac * rn_minfac / ( 2._wp * 12._wp * 12._wp * zcmsmag ) ! lower limit stability factor scaling 
    409             zstabf_up = rn_maxfac / ( 4._wp * zcmsmag * 2._wp * rdt )               ! upper limit stability factor scaling 
     409            zstabf_up = rn_maxfac / ( 4._wp * zcmsmag * 2._wp * rn_Dt )               ! upper limit stability factor scaling 
    410410            IF( ln_dynldf_blp ) zstabf_lo = ( 16._wp / 9._wp ) * zstabf_lo          ! provide |U|L^3/12 lower limit instead  
    411411            !                                                                       ! of |U|L^3/16 in blp case 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/LDF/ldftra.F90

    r12377 r12495  
    820820      ! 
    821821      IF( iom_use('weiv_masstr') ) THEN   ! vertical mass transport & its square value 
    822          zw2d(:,:) = rau0 * e1e2t(:,:) 
     822         zw2d(:,:) = rho0 * e1e2t(:,:) 
    823823         DO jk = 1, jpk 
    824824            zw3d(:,:,jk) = zw3d(:,:,jk) * zw2d(:,:) 
     
    830830         zw3d(:,:,:) = 0.e0 
    831831         DO jk = 1, jpkm1 
    832             zw3d(:,:,jk) = rau0 * ( psi_uw(:,:,jk+1) - psi_uw(:,:,jk) )  
     832            zw3d(:,:,jk) = rho0 * ( psi_uw(:,:,jk+1) - psi_uw(:,:,jk) )  
    833833         END DO 
    834834         CALL iom_put( "ueiv_masstr", zw3d )                  ! mass transport in i-direction 
    835835      ENDIF 
    836836      ! 
    837       zztmp = 0.5_wp * rau0 * rcp  
     837      zztmp = 0.5_wp * rho0 * rcp  
    838838      IF( iom_use('ueiv_heattr') .OR. iom_use('ueiv_heattr3d') ) THEN 
    839839        zw2d(:,:)   = 0._wp  
     
    853853         zw3d(:,:,:) = 0.e0 
    854854         DO jk = 1, jpkm1 
    855             zw3d(:,:,jk) = rau0 * ( psi_vw(:,:,jk+1) - psi_vw(:,:,jk) )  
     855            zw3d(:,:,jk) = rho0 * ( psi_vw(:,:,jk+1) - psi_vw(:,:,jk) )  
    856856         END DO 
    857857         CALL iom_put( "veiv_masstr", zw3d )                  ! mass transport in i-direction 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/OBS/diaobs.F90

    r12377 r12495  
    539539      ENDIF 
    540540 
    541       idaystp = NINT( rday / rdt ) 
     541      idaystp = NINT( rday / rn_Dt ) 
    542542 
    543543      !----------------------------------------------------------------------- 
     
    774774         & rday 
    775775      USE dom_oce, ONLY : &           ! Ocean space and time domain variables 
    776          & rdt 
     776         & rn_Dt 
    777777 
    778778      IMPLICIT NONE 
     
    805805      !! Compute number of days + number of hours + min since initial time 
    806806      !!---------------------------------------------------------------------- 
    807       zdayfrc = kstp * rdt / rday 
     807      zdayfrc = kstp * rn_Dt / rday 
    808808      zdayfrc = zdayfrc - aint(zdayfrc) 
    809809      imin = imin + int( zdayfrc * 24 * 60 )  
     
    816816        iday=iday+1 
    817817      END DO  
    818       iday = iday + kstp * rdt / rday  
     818      iday = iday + kstp * rn_Dt / rday  
    819819 
    820820      !----------------------------------------------------------------------- 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/OBS/obs_prep.F90

    r12377 r12495  
    613613      !! * Modules used 
    614614      USE dom_oce, ONLY : &  ! Geographical information 
    615          & rdt 
     615         & rn_Dt 
    616616      USE phycst, ONLY : &   ! Physical constants 
    617617         & rday,  &              
     
    662662 
    663663      ! Intialize the number of time steps per day 
    664       idaystp = NINT( rday / rdt ) 
     664      idaystp = NINT( rday / rn_Dt ) 
    665665 
    666666      !--------------------------------------------------------------------- 
     
    732732 
    733733         ! Add in the number of time steps to the observation minute 
    734          zminstp = rmmss / rdt 
     734         zminstp = rmmss / rn_Dt 
    735735         zhoustp = rhhmm * zminstp 
    736736 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/SBC/fldread.F90

    r12377 r12495  
    172172      ! Note that all varibles starting by nsec_* are shifted time by +1/2 time step to be centrered 
    173173      IF( PRESENT(kit) ) THEN   ! ignore kn_fsbc in this case 
    174          isecsbc = nsec_year + nsec1jan000 + NINT( (     REAL(      kit,wp) + zt_offset ) * rdt / REAL(nn_baro,wp) ) 
     174         isecsbc = nsec_year + nsec1jan000 + NINT( (     REAL(      kit,wp) + zt_offset ) * rn_Dt / REAL(nn_e,wp) ) 
    175175      ELSE                      ! middle of sbc time step 
    176176         ! note: we use kn_fsbc-1 because nsec_year is defined at the middle of the current time step 
    177          isecsbc = nsec_year + nsec1jan000 + NINT( ( 0.5*REAL(kn_fsbc-1,wp) + zt_offset ) * rdt ) 
     177         isecsbc = nsec_year + nsec1jan000 + NINT( ( 0.5*REAL(kn_fsbc-1,wp) + zt_offset ) * rn_Dt ) 
    178178      ENDIF 
    179179      imf = SIZE( sd ) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/SBC/sbcapr.F90

    r12377 r12495  
    3636    
    3737   REAL(wp) ::   tarea                ! whole domain mean masked ocean surface 
    38    REAL(wp) ::   r1_grau              ! = 1.e0 / (grav * rau0) 
     38   REAL(wp) ::   r1_grau              ! = 1.e0 / (grav * rho0) 
    3939    
    4040   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf_apr   ! structure of input fields (file informations, fields read) 
     
    9898      ENDIF 
    9999      ! 
    100       r1_grau = 1.e0 / (grav * rau0)               !* constant for optimization 
     100      r1_grau = 1.e0 / (grav * rho0)               !* constant for optimization 
    101101      ! 
    102102      !                                            !* control check 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/SBC/sbcblk.F90

    r12459 r12495  
    278278            ENDIF 
    279279            ! 
    280             IF( sf(jfpr)%freqh > 0. .AND. MOD( NINT(3600. * sf(jfpr)%freqh), nn_fsbc * NINT(rdt) ) /= 0 )   & 
    281                &  CALL ctl_warn( 'sbc_blk_init: sbcmod timestep rdt*nn_fsbc is NOT a submultiple of atmospheric forcing frequency.',   & 
    282                &                 '               This is not ideal. You should consider changing either rdt or nn_fsbc value...' ) 
     280            IF( sf(jfpr)%freqh > 0. .AND. MOD( NINT(3600. * sf(jfpr)%freqh), nn_fsbc * NINT(rn_Dt) ) /= 0 )   & 
     281               &  CALL ctl_warn( 'sbc_blk_init: sbcmod timestep rn_Dt*nn_fsbc is NOT a submultiple of atmospheric forcing frequency.',   & 
     282               &                 '               This is not ideal. You should consider changing either rn_Dt or nn_fsbc value...' ) 
    283283         ENDIF 
    284284      END DO 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/SBC/sbcblk_skin_coare.F90

    r12377 r12495  
    199199         ! Okay test on updated absorbed flux: 
    200200         !#LB: remove??? has a strong influence !!! 
    201          IF( (.NOT. l_exit).AND.(Qnt_ac(ji,jj) + zQabs*rdt <= 0._wp) ) THEN 
     201         IF( (.NOT. l_exit).AND.(Qnt_ac(ji,jj) + zQabs*rn_Dt <= 0._wp) ) THEN 
    202202            l_exit       = .TRUE. 
    203203            l_destroy_wl = .TRUE. 
     
    211211            ! 2/ Regardless of WL formed (dT==0 or dT>0), we are in the process to initiate one or warm further it ! 
    212212 
    213             ztac = Tau_ac(ji,jj) + MAX(.002_wp , pTau(ji,jj))*rdt      ! updated momentum integral 
     213            ztac = Tau_ac(ji,jj) + MAX(.002_wp , pTau(ji,jj))*rn_Dt      ! updated momentum integral 
    214214            !PRINT *, '#LBD: updated value for Tac=',  REAL(ztac,4) 
    215215 
     
    218218            DO jl = 1, 5 
    219219               zQabs = frac_solar_abs(zHwl)*pQsw(ji,jj) + pQnsol(ji,jj) 
    220                zqac  = Qnt_ac(ji,jj) + zQabs*rdt ! updated heat absorbed 
     220               zqac  = Qnt_ac(ji,jj) + zQabs*rn_Dt ! updated heat absorbed 
    221221               IF( zqac <= 0._wp ) EXIT 
    222222               zHwl = MAX( MIN( Hwl_max , zcd1*ztac/SQRT(zqac)) , 0.1_wp ) ! Warm-layer depth 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/SBC/sbcblk_skin_ecmwf.F90

    r12377 r12495  
    214214         zcst2 = zcst1 / ( 5._wp*zHwl*zusw2 )  !OR: zcst2 = zcst1*rNuwl0 / ( 5._wp*zHwl*zusw2 ) ??? 
    215215 
    216          zcst0 = rdt * (rNuwl0 + 1._wp) / zHwl 
     216         zcst0 = rn_Dt * (rNuwl0 + 1._wp) / zHwl 
    217217 
    218218         ZA = zcst0 * zQabs / ( rNuwl0 * zRhoCp_w ) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/SBC/sbccpl.F90

    r12377 r12495  
    193193 
    194194   REAL(wp) ::   rpref = 101000._wp   ! reference atmospheric pressure[N/m2]  
    195    REAL(wp) ::   r1_grau              ! = 1.e0 / (grav * rau0)  
     195   REAL(wp) ::   r1_grau              ! = 1.e0 / (grav * rho0)  
    196196 
    197197   INTEGER , ALLOCATABLE, SAVE, DIMENSION(:) ::   nrcvinfo           ! OASIS info argument 
     
    11231123      !                                                      ! Receive all the atmos. fields (including ice information) 
    11241124      !                                                      ! ======================================================= ! 
    1125       isec = ( kt - nit000 ) * NINT( rdt )                      ! date of exchanges 
     1125      isec = ( kt - nit000 ) * NINT( rn_Dt )                      ! date of exchanges 
    11261126      DO jn = 1, jprcv                                          ! received fields sent by the atmosphere 
    11271127         IF( srcv(jn)%laction )   CALL cpl_rcv( jn, isec, frcv(jn)%z3, xcplmask(:,:,1:nn_cplmodel), nrcvinfo(jn) ) 
     
    12501250          IF( kt /= nit000 )   ssh_ibb(:,:) = ssh_ib(:,:)    !* Swap of ssh_ib fields  
    12511251 
    1252           r1_grau = 1.e0 / (grav * rau0)               !* constant for optimization  
     1252          r1_grau = 1.e0 / (grav * rho0)               !* constant for optimization  
    12531253          ssh_ib(:,:) = - ( frcv(jpr_mslp)%z3(:,:,1) - rpref ) * r1_grau    ! equivalent ssh (inverse barometer)  
    12541254          apr   (:,:) =     frcv(jpr_mslp)%z3(:,:,1)                         !atmospheric pressure  
     
    21002100      !!---------------------------------------------------------------------- 
    21012101      ! 
    2102       isec = ( kt - nit000 ) * NINT( rdt )        ! date of exchanges 
     2102      isec = ( kt - nit000 ) * NINT( rn_Dt )        ! date of exchanges 
    21032103 
    21042104      zfr_l(:,:) = 1.- fr_i(:,:) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/SBC/sbcdcy.F90

    r12377 r12495  
    8686      ! -------------- 
    8787      ! When are we during the day (from 0 to 1) 
    88       zlo = ( REAL(nsec_day, wp) - 0.5_wp * rdt ) / rday 
    89       zup = zlo + ( REAL(nn_fsbc, wp)     * rdt ) / rday 
     88      zlo = ( REAL(nsec_day, wp) - 0.5_wp * rn_Dt ) / rday 
     89      zup = zlo + ( REAL(nn_fsbc, wp)     * rn_Dt ) / rday 
    9090      ! 
    9191      IF( nday_qsr == -1 ) THEN       ! first time step only 
     
    251251         END_2D 
    252252         ! 
    253          ztmp = rday / ( rdt * REAL(nn_fsbc, wp) ) 
     253         ztmp = rday / ( rn_Dt * REAL(nn_fsbc, wp) ) 
    254254         rscal(:,:) = rscal(:,:) * ztmp 
    255255         ! 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/SBC/sbcfwb.F90

    r12377 r12495  
    126126         ENDIF    
    127127         !                                         ! Update fwfold if new year start 
    128          ikty = 365 * 86400 / rdt                  !!bug  use of 365 days leap year or 360d year !!!!!!! 
     128         ikty = 365 * 86400 / rn_Dt                  !!bug  use of 365 days leap year or 360d year !!!!!!! 
    129129         IF( MOD( kt, ikty ) == 0 ) THEN 
    130130            a_fwb_b = a_fwb                           ! mean sea level taking into account the ice+snow 
    131131                                                      ! sum over the global domain 
    132             a_fwb   = glob_sum( 'sbcfwb', e1e2t(:,:) * ( ssh(:,:,Kmm) + snwice_mass(:,:) * r1_rau0 ) ) 
     132            a_fwb   = glob_sum( 'sbcfwb', e1e2t(:,:) * ( ssh(:,:,Kmm) + snwice_mass(:,:) * r1_rho0 ) ) 
    133133            a_fwb   = a_fwb * 1.e+3 / ( area * rday * 365. )     ! convert in Kg/m3/s = mm/s 
    134134!!gm        !                                                      !!bug 365d year  
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/SBC/sbcice_cice.F90

    r12377 r12495  
    1313   USE dom_oce         ! ocean space and time domain 
    1414   USE domvvl 
    15    USE phycst, only : rcp, rau0, r1_rau0, rhos, rhoi 
     15   USE phycst, only : rcp, rho0, r1_rho0, rhos, rhoi 
    1616   USE in_out_manager  ! I/O manager 
    1717   USE iom, ONLY : iom_put,iom_use              ! I/O manager library !!Joakim edit 
     
    228228      IF( .NOT.ln_rstart ) THEN 
    229229         IF( ln_ice_embd ) THEN            ! embedded sea-ice: deplete the initial ssh below sea-ice area 
    230             ssh(:,:,Kmm) = ssh(:,:,Kmm) - snwice_mass(:,:) * r1_rau0 
    231             ssh(:,:,Kbb) = ssh(:,:,Kbb) - snwice_mass(:,:) * r1_rau0 
     230            ssh(:,:,Kmm) = ssh(:,:,Kmm) - snwice_mass(:,:) * r1_rho0 
     231            ssh(:,:,Kbb) = ssh(:,:,Kbb) - snwice_mass(:,:) * r1_rho0 
    232232 
    233233!!gm This should be put elsewhere....   (same remark for limsbc) 
     
    417417! Freezing/melting potential 
    418418! Calculated over NEMO leapfrog timestep (hence 2*dt) 
    419       nfrzmlt(:,:) = rau0 * rcp * e3t_m(:,:) * ( Tocnfrz-sst_m(:,:) ) / ( 2.0*dt ) 
     419      nfrzmlt(:,:) = rho0 * rcp * e3t_m(:,:) * ( Tocnfrz-sst_m(:,:) ) / ( 2.0*dt ) 
    420420 
    421421      ztmp(:,:) = nfrzmlt(:,:) 
     
    450450         zintb = REAL( nn_fsbc + 1 ) / REAL( nn_fsbc ) * 0.5_wp 
    451451          ! 
    452          zpice(:,:) = ssh_m(:,:) + (  zintn * snwice_mass(:,:) +  zintb * snwice_mass_b(:,:)  ) * r1_rau0 
     452         zpice(:,:) = ssh_m(:,:) + (  zintn * snwice_mass(:,:) +  zintb * snwice_mass_b(:,:)  ) * r1_rho0 
    453453          ! 
    454454         ! 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/SBC/sbcmod.F90

    r12377 r12495  
    187187      ! 
    188188      IF( .NOT.ln_usr ) THEN     ! the model calendar needs some specificities (except in user defined case) 
    189          IF( MOD( rday , rdt ) /= 0. )   CALL ctl_stop( 'the time step must devide the number of second of in a day' ) 
     189         IF( MOD( rday , rn_Dt ) /= 0. )   CALL ctl_stop( 'the time step must devide the number of second of in a day' ) 
    190190         IF( MOD( rday , 2.  ) /= 0. )   CALL ctl_stop( 'the number of second of in a day must be an even number'    ) 
    191          IF( MOD( rdt  , 2.  ) /= 0. )   CALL ctl_stop( 'the time step (in second) must be an even number'           ) 
     191         IF( MOD( rn_Dt  , 2.  ) /= 0. )   CALL ctl_stop( 'the time step (in second) must be an even number'           ) 
    192192      ENDIF 
    193193      !                       !**  check option consistency 
     
    309309      !     SAS time-step has to be declared in OASIS (mandatory) -> nn_fsbc has to be modified accordingly 
    310310      IF( nn_components /= jp_iam_nemo ) THEN 
    311          IF( nn_components == jp_iam_opa )   nn_fsbc = cpl_freq('O_SFLX') / NINT(rdt) 
    312          IF( nn_components == jp_iam_sas )   nn_fsbc = cpl_freq('I_SFLX') / NINT(rdt) 
     311         IF( nn_components == jp_iam_opa )   nn_fsbc = cpl_freq('O_SFLX') / NINT(rn_Dt) 
     312         IF( nn_components == jp_iam_sas )   nn_fsbc = cpl_freq('I_SFLX') / NINT(rn_Dt) 
    313313         ! 
    314314         IF(lwp)THEN 
     
    331331      ENDIF 
    332332      ! 
    333       IF( MOD( rday, REAL(nn_fsbc, wp) * rdt ) /= 0 )   & 
     333      IF( MOD( rday, REAL(nn_fsbc, wp) * rn_Dt ) /= 0 )   & 
    334334         &  CALL ctl_warn( 'sbc_init : nn_fsbc is NOT a multiple of the number of time steps in a day' ) 
    335335      ! 
    336       IF( ln_dm2dc .AND. NINT(rday) / ( nn_fsbc * NINT(rdt) ) < 8  )   & 
     336      IF( ln_dm2dc .AND. NINT(rday) / ( nn_fsbc * NINT(rn_Dt) ) < 8  )   & 
    337337         &   CALL ctl_warn( 'sbc_init : diurnal cycle for qsr: the sampling of the diurnal cycle is too small...' ) 
    338338      ! 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/SBC/sbcrnf.F90

    r12377 r12495  
    137137         !                                                           ! set temperature & salinity content of runoffs 
    138138         IF( ln_rnf_tem ) THEN                                       ! use runoffs temperature data 
    139             rnf_tsc(:,:,jp_tem) = ( sf_t_rnf(1)%fnow(:,:,1) ) * rnf(:,:) * r1_rau0 
     139            rnf_tsc(:,:,jp_tem) = ( sf_t_rnf(1)%fnow(:,:,1) ) * rnf(:,:) * r1_rho0 
    140140            CALL eos_fzp( sss_m(:,:), ztfrz(:,:) ) 
    141141            WHERE( sf_t_rnf(1)%fnow(:,:,1) == -999._wp )             ! if missing data value use SST as runoffs temperature 
    142                rnf_tsc(:,:,jp_tem) = sst_m(:,:) * rnf(:,:) * r1_rau0 
     142               rnf_tsc(:,:,jp_tem) = sst_m(:,:) * rnf(:,:) * r1_rho0 
    143143            END WHERE 
    144144         ELSE                                                        ! use SST as runoffs temperature 
    145145            !CEOD River is fresh water so must at least be 0 unless we consider ice 
    146             rnf_tsc(:,:,jp_tem) = MAX( sst_m(:,:), 0.0_wp ) * rnf(:,:) * r1_rau0 
     146            rnf_tsc(:,:,jp_tem) = MAX( sst_m(:,:), 0.0_wp ) * rnf(:,:) * r1_rho0 
    147147         ENDIF 
    148148         !                                                           ! use runoffs salinity data 
    149          IF( ln_rnf_sal )   rnf_tsc(:,:,jp_sal) = ( sf_s_rnf(1)%fnow(:,:,1) ) * rnf(:,:) * r1_rau0 
     149         IF( ln_rnf_sal )   rnf_tsc(:,:,jp_sal) = ( sf_s_rnf(1)%fnow(:,:,1) ) * rnf(:,:) * r1_rho0 
    150150         !                                                           ! else use S=0 for runoffs (done one for all in the init) 
    151151                                         CALL iom_put( 'runoffs'     , rnf(:,:)                         )   ! output runoff mass flux 
    152          IF( iom_use('hflx_rnf_cea') )   CALL iom_put( 'hflx_rnf_cea', rnf_tsc(:,:,jp_tem) * rau0 * rcp )   ! output runoff sensible heat (W/m2) 
     152         IF( iom_use('hflx_rnf_cea') )   CALL iom_put( 'hflx_rnf_cea', rnf_tsc(:,:,jp_tem) * rho0 * rcp )   ! output runoff sensible heat (W/m2) 
    153153      ENDIF 
    154154      ! 
     
    210210            DO_2D_11_11 
    211211               DO jk = 1, nk_rnf(ji,jj) 
    212                   phdivn(ji,jj,jk) = phdivn(ji,jj,jk) - ( rnf(ji,jj) + rnf_b(ji,jj) ) * zfact * r1_rau0 / h_rnf(ji,jj) 
     212                  phdivn(ji,jj,jk) = phdivn(ji,jj,jk) - ( rnf(ji,jj) + rnf_b(ji,jj) ) * zfact * r1_rho0 / h_rnf(ji,jj) 
    213213               END DO 
    214214            END_2D 
     
    221221               !                          ! apply the runoff input flow 
    222222               DO jk = 1, nk_rnf(ji,jj) 
    223                   phdivn(ji,jj,jk) = phdivn(ji,jj,jk) - ( rnf(ji,jj) + rnf_b(ji,jj) ) * zfact * r1_rau0 / h_rnf(ji,jj) 
     223                  phdivn(ji,jj,jk) = phdivn(ji,jj,jk) - ( rnf(ji,jj) + rnf_b(ji,jj) ) * zfact * r1_rho0 / h_rnf(ji,jj) 
    224224               END DO 
    225225            END_2D 
     
    227227      ELSE                       !==   runoff put only at the surface   ==! 
    228228         h_rnf (:,:)   = e3t (:,:,1,Kmm)        ! update h_rnf to be depth of top box 
    229          phdivn(:,:,1) = phdivn(:,:,1) - ( rnf(:,:) + rnf_b(:,:) ) * zfact * r1_rau0 / e3t(:,:,1,Kmm) 
     229         phdivn(:,:,1) = phdivn(:,:,1) - ( rnf(:,:) + rnf_b(:,:) ) * zfact * r1_rho0 / e3t(:,:,1,Kmm) 
    230230      ENDIF 
    231231      ! 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/TDE/tide_mod.F90

    r12343 r12495  
    171171      IF( ln_scal_load.AND.ln_read_load ) & 
    172172          &   CALL ctl_stop('Choose between ln_scal_load and ln_read_load') 
    173       IF( ln_tide_ramp.AND.((nitend-nit000+1)*rdt/rday < rn_tide_ramp_dt) )   & 
     173      IF( ln_tide_ramp.AND.((nitend-nit000+1)*rn_Dt/rday < rn_tide_ramp_dt) )   & 
    174174         &   CALL ctl_stop('rn_tide_ramp_dt must be lower than run duration') 
    175175      IF( ln_tide_ramp.AND.(rn_tide_ramp_dt<0.) ) & 
     
    424424      !!---------------------------------------------------------------------- 
    425425       
    426       IF( nsec_day == NINT(0.5_wp * rdt) .OR. kt == nit000 ) THEN      ! start a new day 
     426      IF( nsec_day == NINT(0.5_wp * rn_Dt) .OR. kt == nit000 ) THEN      ! start a new day 
    427427         ! 
    428428         CALL tide_harmo(tide_components, tide_harmonics, ndt05) ! Update oscillation parameters of tidal components for start of current day 
     
    441441         IF( ln_tide_pot )   CALL tide_init_potential 
    442442         ! 
    443          rn_tide_ramp_t = (kt - nit000)*rdt !   Elapsed time in seconds 
     443         rn_tide_ramp_t = (kt - nit000)*rn_Dt !   Elapsed time in seconds 
    444444      ENDIF 
    445445      ! 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/TRA/eosbn2.F90

    r12377 r12495  
    191191      !!                   ***  ROUTINE eos_insitu  *** 
    192192      !! 
    193       !! ** Purpose :   Compute the in situ density (ratio rho/rau0) from 
     193      !! ** Purpose :   Compute the in situ density (ratio rho/rho0) from 
    194194      !!       potential temperature and salinity using an equation of state 
    195195      !!       selected in the nameos namelist 
    196196      !! 
    197       !! ** Method  :   prd(t,s,z) = ( rho(t,s,z) - rau0 ) / rau0 
     197      !! ** Method  :   prd(t,s,z) = ( rho(t,s,z) - rho0 ) / rho0 
    198198      !!         with   prd    in situ density anomaly      no units 
    199199      !!                t      TEOS10: CT or EOS80: PT      Celsius 
     
    201201      !!                z      depth                        meters 
    202202      !!                rho    in situ density              kg/m^3 
    203       !!                rau0   reference density            kg/m^3 
     203      !!                rho0   reference density            kg/m^3 
    204204      !! 
    205205      !!     ln_teos10 : polynomial TEOS-10 equation of state is used for rho(t,s,z). 
     
    210210      !! 
    211211      !!     ln_seos : simplified equation of state 
    212       !!              prd(t,s,z) = ( -a0*(1+lambda/2*(T-T0)+mu*z+nu*(S-S0))*(T-T0) + b0*(S-S0) ) / rau0 
     212      !!              prd(t,s,z) = ( -a0*(1+lambda/2*(T-T0)+mu*z+nu*(S-S0))*(T-T0) + b0*(S-S0) ) / rho0 
    213213      !!              linear case function of T only: rn_alpha<>0, other coefficients = 0 
    214214      !!              linear eos function of T and S: rn_alpha and rn_beta<>0, other coefficients=0 
     
    267267            zn  = ( ( zn3 * zh + zn2 ) * zh + zn1 ) * zh + zn0 
    268268            ! 
    269             prd(ji,jj,jk) = (  zn * r1_rau0 - 1._wp  ) * ztm  ! density anomaly (masked) 
     269            prd(ji,jj,jk) = (  zn * r1_rho0 - 1._wp  ) * ztm  ! density anomaly (masked) 
    270270            ! 
    271271         END_3D 
     
    283283               &  - rn_nu * zt * zs 
    284284               !                                  
    285             prd(ji,jj,jk) = zn * r1_rau0 * ztm                ! density anomaly (masked) 
     285            prd(ji,jj,jk) = zn * r1_rho0 * ztm                ! density anomaly (masked) 
    286286         END_3D 
    287287         ! 
     
    299299      !!                  ***  ROUTINE eos_insitu_pot  *** 
    300300      !! 
    301       !! ** Purpose :   Compute the in situ density (ratio rho/rau0) and the 
     301      !! ** Purpose :   Compute the in situ density (ratio rho/rho0) and the 
    302302      !!      potential volumic mass (Kg/m3) from potential temperature and 
    303303      !!      salinity fields using an equation of state selected in the 
     
    379379                  prhop(ji,jj,jk) = prhop(ji,jj,jk) + zn0_sto(jsmp)                      ! potential density referenced at the surface 
    380380                  ! 
    381                   prd(ji,jj,jk) = prd(ji,jj,jk) + (  zn_sto(jsmp) * r1_rau0 - 1._wp  )   ! density anomaly (masked) 
     381                  prd(ji,jj,jk) = prd(ji,jj,jk) + (  zn_sto(jsmp) * r1_rho0 - 1._wp  )   ! density anomaly (masked) 
    382382               END DO 
    383383               prhop(ji,jj,jk) = 0.5_wp * prhop(ji,jj,jk) * ztm / nn_sto_eos 
     
    419419               prhop(ji,jj,jk) = zn0 * ztm                           ! potential density referenced at the surface 
    420420               ! 
    421                prd(ji,jj,jk) = (  zn * r1_rau0 - 1._wp  ) * ztm      ! density anomaly (masked) 
     421               prd(ji,jj,jk) = (  zn * r1_rho0 - 1._wp  ) * ztm      ! density anomaly (masked) 
    422422            END_3D 
    423423         ENDIF 
     
    434434               &  + rn_b0 * ( 1._wp - 0.5_wp*rn_lambda2*zs ) * zs   & 
    435435               &  - rn_nu * zt * zs 
    436             prhop(ji,jj,jk) = ( rau0 + zn ) * ztm 
     436            prhop(ji,jj,jk) = ( rho0 + zn ) * ztm 
    437437            !                                                     ! density anomaly (masked) 
    438438            zn = zn - ( rn_a0 * rn_mu1 * zt + rn_b0 * rn_mu2 * zs ) * zh 
    439             prd(ji,jj,jk) = zn * r1_rau0 * ztm 
     439            prd(ji,jj,jk) = zn * r1_rho0 * ztm 
    440440            ! 
    441441         END_3D 
     
    454454      !!                  ***  ROUTINE eos_insitu_2d  *** 
    455455      !! 
    456       !! ** Purpose :   Compute the in situ density (ratio rho/rau0) from 
     456      !! ** Purpose :   Compute the in situ density (ratio rho/rho0) from 
    457457      !!      potential temperature and salinity using an equation of state 
    458458      !!      selected in the nameos namelist. * 2D field case 
     
    508508            zn  = ( ( zn3 * zh + zn2 ) * zh + zn1 ) * zh + zn0 
    509509            ! 
    510             prd(ji,jj) = zn * r1_rau0 - 1._wp               ! unmasked in situ density anomaly 
     510            prd(ji,jj) = zn * r1_rho0 - 1._wp               ! unmasked in situ density anomaly 
    511511            ! 
    512512         END_2D 
     
    524524               &  - rn_nu * zt * zs 
    525525               ! 
    526             prd(ji,jj) = zn * r1_rau0               ! unmasked in situ density anomaly 
     526            prd(ji,jj) = zn * r1_rho0               ! unmasked in situ density anomaly 
    527527            ! 
    528528         END_2D 
     
    588588            zn  = ( ( zn3 * zh + zn2 ) * zh + zn1 ) * zh + zn0 
    589589            ! 
    590             pab(ji,jj,jk,jp_tem) = zn * r1_rau0 * ztm 
     590            pab(ji,jj,jk,jp_tem) = zn * r1_rho0 * ztm 
    591591            ! 
    592592            ! beta 
     
    609609            zn  = ( ( zn3 * zh + zn2 ) * zh + zn1 ) * zh + zn0 
    610610            ! 
    611             pab(ji,jj,jk,jp_sal) = zn / zs * r1_rau0 * ztm 
     611            pab(ji,jj,jk,jp_sal) = zn / zs * r1_rho0 * ztm 
    612612            ! 
    613613         END_3D 
     
    622622            ! 
    623623            zn  = rn_a0 * ( 1._wp + rn_lambda1*zt + rn_mu1*zh ) + rn_nu*zs 
    624             pab(ji,jj,jk,jp_tem) = zn * r1_rau0 * ztm   ! alpha 
     624            pab(ji,jj,jk,jp_tem) = zn * r1_rho0 * ztm   ! alpha 
    625625            ! 
    626626            zn  = rn_b0 * ( 1._wp - rn_lambda2*zs - rn_mu2*zh ) - rn_nu*zt 
    627             pab(ji,jj,jk,jp_sal) = zn * r1_rau0 * ztm   ! beta 
     627            pab(ji,jj,jk,jp_sal) = zn * r1_rho0 * ztm   ! beta 
    628628            ! 
    629629         END_3D 
     
    694694            zn  = ( ( zn3 * zh + zn2 ) * zh + zn1 ) * zh + zn0 
    695695            ! 
    696             pab(ji,jj,jp_tem) = zn * r1_rau0 
     696            pab(ji,jj,jp_tem) = zn * r1_rho0 
    697697            ! 
    698698            ! beta 
     
    715715            zn  = ( ( zn3 * zh + zn2 ) * zh + zn1 ) * zh + zn0 
    716716            ! 
    717             pab(ji,jj,jp_sal) = zn / zs * r1_rau0 
     717            pab(ji,jj,jp_sal) = zn / zs * r1_rho0 
    718718            ! 
    719719            ! 
     
    729729            ! 
    730730            zn  = rn_a0 * ( 1._wp + rn_lambda1*zt + rn_mu1*zh ) + rn_nu*zs 
    731             pab(ji,jj,jp_tem) = zn * r1_rau0   ! alpha 
     731            pab(ji,jj,jp_tem) = zn * r1_rho0   ! alpha 
    732732            ! 
    733733            zn  = rn_b0 * ( 1._wp - rn_lambda2*zs - rn_mu2*zh ) - rn_nu*zt 
    734             pab(ji,jj,jp_sal) = zn * r1_rau0   ! beta 
     734            pab(ji,jj,jp_sal) = zn * r1_rho0   ! beta 
    735735            ! 
    736736         END_2D 
     
    799799         zn  = ( ( zn3 * zh + zn2 ) * zh + zn1 ) * zh + zn0 
    800800         ! 
    801          pab(jp_tem) = zn * r1_rau0 
     801         pab(jp_tem) = zn * r1_rho0 
    802802         ! 
    803803         ! beta 
     
    820820         zn  = ( ( zn3 * zh + zn2 ) * zh + zn1 ) * zh + zn0 
    821821         ! 
    822          pab(jp_sal) = zn / zs * r1_rau0 
     822         pab(jp_sal) = zn / zs * r1_rho0 
    823823         ! 
    824824         ! 
     
    831831         ! 
    832832         zn  = rn_a0 * ( 1._wp + rn_lambda1*zt + rn_mu1*zh ) + rn_nu*zs 
    833          pab(jp_tem) = zn * r1_rau0   ! alpha 
     833         pab(jp_tem) = zn * r1_rho0   ! alpha 
    834834         ! 
    835835         zn  = rn_b0 * ( 1._wp - rn_lambda2*zs - rn_mu2*zh ) - rn_nu*zt 
    836          pab(jp_sal) = zn * r1_rau0   ! beta 
     836         pab(jp_sal) = zn * r1_rho0   ! beta 
    837837         ! 
    838838      CASE DEFAULT 
     
    10521052      !! ** Method  :   PE is defined analytically as the vertical  
    10531053      !!                   primitive of EOS times -g integrated between 0 and z>0. 
    1054       !!                pen is the nonlinear bsq-PE anomaly: pen = ( PE - rau0 gz ) / rau0 gz - rd 
     1054      !!                pen is the nonlinear bsq-PE anomaly: pen = ( PE - rho0 gz ) / rho0 gz - rd 
    10551055      !!                                                      = 1/z * /int_0^z rd dz - rd  
    10561056      !!                                where rd is the density anomaly (see eos_rhd function) 
    10571057      !!                ab_pe are partial derivatives of PE anomaly with respect to T and S: 
    1058       !!                    ab_pe(1) = - 1/(rau0 gz) * dPE/dT + drd/dT = - d(pen)/dT 
    1059       !!                    ab_pe(2) =   1/(rau0 gz) * dPE/dS + drd/dS =   d(pen)/dS 
     1058      !!                    ab_pe(1) = - 1/(rho0 gz) * dPE/dT + drd/dT = - d(pen)/dT 
     1059      !!                    ab_pe(2) =   1/(rho0 gz) * dPE/dS + drd/dS =   d(pen)/dS 
    10601060      !! 
    10611061      !! ** Action  : - pen         : PE anomaly given at T-points 
     
    11031103            zn  = ( zn2 * zh + zn1 ) * zh + zn0 
    11041104            ! 
    1105             ppen(ji,jj,jk)  = zn * zh * r1_rau0 * ztm 
     1105            ppen(ji,jj,jk)  = zn * zh * r1_rho0 * ztm 
    11061106            ! 
    11071107            ! alphaPE non-linear anomaly 
     
    11181118            zn  = ( zn2 * zh + zn1 ) * zh + zn0 
    11191119            !                               
    1120             pab_pe(ji,jj,jk,jp_tem) = zn * zh * r1_rau0 * ztm 
     1120            pab_pe(ji,jj,jk,jp_tem) = zn * zh * r1_rho0 * ztm 
    11211121            ! 
    11221122            ! betaPE non-linear anomaly 
     
    11331133            zn  = ( zn2 * zh + zn1 ) * zh + zn0 
    11341134            !                               
    1135             pab_pe(ji,jj,jk,jp_sal) = zn / zs * zh * r1_rau0 * ztm 
     1135            pab_pe(ji,jj,jk,jp_sal) = zn / zs * zh * r1_rho0 * ztm 
    11361136            ! 
    11371137         END_3D 
     
    11441144            zh  = gdept(ji,jj,jk,Kmm)              ! depth in meters  at t-point 
    11451145            ztm = tmask(ji,jj,jk)                ! tmask 
    1146             zn  = 0.5_wp * zh * r1_rau0 * ztm 
     1146            zn  = 0.5_wp * zh * r1_rho0 * ztm 
    11471147            !                                    ! Potential Energy 
    11481148            ppen(ji,jj,jk) = ( rn_a0 * rn_mu1 * zt + rn_b0 * rn_mu2 * zs ) * zn 
     
    11861186      IF(lwm) WRITE( numond, nameos ) 
    11871187      ! 
    1188       rau0        = 1026._wp                 !: volumic mass of reference     [kg/m3] 
     1188      rho0        = 1026._wp                 !: volumic mass of reference     [kg/m3] 
    11891189      rcp         = 3991.86795711963_wp      !: heat capacity     [J/K] 
    11901190      ! 
     
    15981598            WRITE(numout,*) '   ==>>>   use of simplified eos:    ' 
    15991599            WRITE(numout,*) '              rhd(dT=T-10,dS=S-35,Z) = [-a0*(1+lambda1/2*dT+mu1*Z)*dT ' 
    1600             WRITE(numout,*) '                                       + b0*(1+lambda2/2*dT+mu2*Z)*dS - nu*dT*dS] / rau0' 
     1600            WRITE(numout,*) '                                       + b0*(1+lambda2/2*dT+mu2*Z)*dS - nu*dT*dS] / rho0' 
    16011601            WRITE(numout,*) '              with the following coefficients :' 
    16021602            WRITE(numout,*) '                 thermal exp. coef.    rn_a0      = ', rn_a0 
     
    16171617      END SELECT 
    16181618      ! 
    1619       rau0_rcp    = rau0 * rcp  
    1620       r1_rau0     = 1._wp / rau0 
     1619      rho0_rcp    = rho0 * rcp  
     1620      r1_rho0     = 1._wp / rho0 
    16211621      r1_rcp      = 1._wp / rcp 
    1622       r1_rau0_rcp = 1._wp / rau0_rcp  
     1622      r1_rho0_rcp = 1._wp / rho0_rcp  
    16231623      ! 
    16241624      IF(lwp) THEN 
     
    16351635      IF(lwp) WRITE(numout,*) 
    16361636      IF(lwp) WRITE(numout,*) '   Associated physical constant' 
    1637       IF(lwp) WRITE(numout,*) '      volumic mass of reference           rau0  = ', rau0   , ' kg/m^3' 
    1638       IF(lwp) WRITE(numout,*) '      1. / rau0                        r1_rau0  = ', r1_rau0, ' m^3/kg' 
     1637      IF(lwp) WRITE(numout,*) '      volumic mass of reference           rho0  = ', rho0   , ' kg/m^3' 
     1638      IF(lwp) WRITE(numout,*) '      1. / rho0                        r1_rho0  = ', r1_rho0, ' m^3/kg' 
    16391639      IF(lwp) WRITE(numout,*) '      ocean specific heat                 rcp   = ', rcp    , ' J/Kelvin' 
    1640       IF(lwp) WRITE(numout,*) '      rau0 * rcp                       rau0_rcp = ', rau0_rcp 
    1641       IF(lwp) WRITE(numout,*) '      1. / ( rau0 * rcp )           r1_rau0_rcp = ', r1_rau0_rcp 
     1640      IF(lwp) WRITE(numout,*) '      rho0 * rcp                       rho0_rcp = ', rho0_rcp 
     1641      IF(lwp) WRITE(numout,*) '      1. / ( rho0 * rcp )           r1_rho0_rcp = ', r1_rho0_rcp 
    16421642      ! 
    16431643   END SUBROUTINE eos_init 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/TRA/traadv.F90

    r12377 r12495  
    9292      IF( ln_timing )   CALL timing_start('tra_adv') 
    9393      ! 
    94       !                                          ! set time step 
    95       IF( neuler == 0 .AND. kt == nit000 ) THEN   ;   r2dt =         rdt   ! at nit000             (Euler) 
    96       ELSEIF( kt <= nit000 + 1 )           THEN   ;   r2dt = 2._wp * rdt   ! at nit000 or nit000+1 (Leapfrog) 
    97       ENDIF 
    98       ! 
    9994      !                                         !==  effective transport  ==! 
    10095      zuu(:,:,jpk) = 0._wp 
     
    149144         CALL tra_adv_cen    ( kt, nit000, 'TRA',         zuu, zvv, zww, Kmm, pts, jpts, Krhs, nn_cen_h, nn_cen_v ) 
    150145      CASE ( np_FCT )                                 ! FCT scheme      : 2nd / 4th order 
    151          CALL tra_adv_fct    ( kt, nit000, 'TRA', r2dt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, nn_fct_h, nn_fct_v ) 
     146         CALL tra_adv_fct    ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, nn_fct_h, nn_fct_v ) 
    152147      CASE ( np_MUS )                                 ! MUSCL 
    153          CALL tra_adv_mus    ( kt, nit000, 'TRA', r2dt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, ln_mus_ups )  
     148         CALL tra_adv_mus    ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, ln_mus_ups )  
    154149      CASE ( np_UBS )                                 ! UBS 
    155          CALL tra_adv_ubs    ( kt, nit000, 'TRA', r2dt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, nn_ubs_v   ) 
     150         CALL tra_adv_ubs    ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, nn_ubs_v   ) 
    156151      CASE ( np_QCK )                                 ! QUICKEST 
    157          CALL tra_adv_qck    ( kt, nit000, 'TRA', r2dt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs ) 
     152         CALL tra_adv_qck    ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs ) 
    158153      ! 
    159154      END SELECT 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/TRA/traadv_fct.F90

    r12377 r12495  
    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_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/TRA/traatf.F90

    r12377 r12495  
    113113      IF( ln_bdy )   CALL bdy_tra( kt, Kbb, pts, Kaa )  ! BDY open boundaries 
    114114  
    115       ! set time step size (Euler/Leapfrog) 
    116       IF( neuler == 0 .AND. kt == nit000 ) THEN   ;   r2dt =        rdt   ! at nit000             (Euler) 
    117       ELSEIF( kt <= nit000 + 1 )           THEN   ;   r2dt = 2._wp* rdt   ! at nit000 or nit000+1 (Leapfrog) 
    118       ENDIF 
    119  
    120115      ! trends computation initialisation 
    121116      IF( l_trdtra )   THEN                     
     
    128123         ENDIF 
    129124         ! total trend for the non-time-filtered variables.  
    130          zfact = 1.0 / rdt 
     125         zfact = 1.0 / rn_Dt 
    131126         ! G Nurser 23 Mar 2017. Recalculate trend as Delta(e3t*T)/e3tn; e3tn cancel from pts(Kmm) terms 
    132127         DO jk = 1, jpkm1 
     
    144139      ENDIF 
    145140 
    146       IF( neuler == 0 .AND. kt == nit000 ) THEN       ! Euler time-stepping  
     141      IF( l_1st_euler ) THEN       ! Euler time-stepping  
    147142         ! 
    148143         IF (l_trdtra .AND. .NOT. ln_linssh ) THEN   ! Zero Asselin filter contribution must be explicitly written out since for vvl 
     
    156151      ELSE                                            ! Leap-Frog + Asselin filter time stepping 
    157152         ! 
    158          IF( ln_linssh ) THEN   ;   CALL tra_atf_fix( kt, Kbb, Kmm, Kaa, nit000,      'TRA', pts, jpts )  ! linear free surface  
    159          ELSE                   ;   CALL tra_atf_vvl( kt, Kbb, Kmm, Kaa, nit000, rdt, 'TRA', pts, sbc_tsc, sbc_tsc_b, jpts )  ! non-linear free surface 
     153         IF( ln_linssh ) THEN   ;   CALL tra_atf_fix( kt, Kbb, Kmm, Kaa, nit000,        'TRA', pts, jpts )  ! linear free surface  
     154         ELSE                   ;   CALL tra_atf_vvl( kt, Kbb, Kmm, Kaa, nit000, rn_Dt, 'TRA', pts, sbc_tsc, sbc_tsc_b, jpts )  ! non-linear free surface 
    160155         ENDIF 
    161156         ! 
     
    167162      ! 
    168163      IF( l_trdtra .AND. ln_linssh ) THEN      ! trend of the Asselin filter (tb filtered - tb)/dt      
    169          zfact = 1._wp / r2dt              
     164         zfact = 1._wp / rDt              
    170165         DO jk = 1, jpkm1 
    171166            ztrdt(:,:,jk) = ( pts(:,:,jk,jp_tem,Kmm) - ztrdt(:,:,jk) ) * zfact 
     
    219214            ztd = pt(ji,jj,jk,jn,Kaa) - 2._wp * ztn + pt(ji,jj,jk,jn,Kbb)  ! time laplacian on tracers 
    220215            ! 
    221             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 
    222217         END_3D 
    223218         ! 
     
    234229      !!  
    235230      !! ** Method  : - Apply a thickness weighted Asselin time filter on now fields. 
    236       !!             pt(Kmm)  = ( e3t(Kmm)*pt(Kmm) + atfp*[ e3t(Kbb)*pt(Kbb) - 2 e3t(Kmm)*pt(Kmm) + e3t_a*pt(Kaa) ] ) 
    237       !!                       /( 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_a*pt(Kaa) ] ) 
     232      !!                       /( e3t(Kmm)         + rn_atfp*[ e3t(Kbb)         - 2 e3t(Kmm)         + e3t(Kaa)    ] ) 
    238233      !! 
    239234      !! ** Action  : - pt(Kmm) ready for the next time step 
     
    277272      ENDIF 
    278273      zfact = 1._wp / p2dt 
    279       zfact1 = atfp * p2dt 
    280       zfact2 = zfact1 * r1_rau0 
     274      zfact1 = rn_atfp * p2dt 
     275      zfact2 = zfact1 * r1_rho0 
    281276      DO jn = 1, kjpt       
    282277         DO_3D_00_00( 1, jpkm1 ) 
     
    292287            ztc_d  = ztc_a  - 2. * ztc_n  + ztc_b 
    293288            ! 
    294             ze3t_f = ze3t_n + atfp * ze3t_d 
    295             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 
    296291            ! 
    297292            ! Add asselin correction on scale factors: 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/TRA/trabbc.F90

    r12377 r12495  
    6666      !!       ocean bottom can be computed once and is added to the temperature 
    6767      !!       trend juste above the bottom at each time step: 
    68       !!            ta = ta + Qsf / (rau0 rcp e3T) for k= mbkt 
     68      !!            ta = ta + Qsf / (rho0 rcp e3T) for k= mbkt 
    6969      !!       Where Qsf is the geothermal heat flux. 
    7070      !! 
     
    102102      ENDIF 
    103103      ! 
    104       CALL iom_put ( "hfgeou" , rau0_rcp * qgh_trd0(:,:) ) 
     104      CALL iom_put ( "hfgeou" , rho0_rcp * qgh_trd0(:,:) ) 
    105105      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' bbc  - Ta: ', mask1=tmask, clinfo3='tra-ta' ) 
    106106      ! 
     
    162162         CASE ( 1 )                          !* constant flux 
    163163            IF(lwp) WRITE(numout,*) '   ==>>>   constant heat flux  =   ', rn_geoflx_cst 
    164             qgh_trd0(:,:) = r1_rau0_rcp * rn_geoflx_cst 
     164            qgh_trd0(:,:) = r1_rho0_rcp * rn_geoflx_cst 
    165165            ! 
    166166         CASE ( 2 )                          !* variable geothermal heat flux : read the geothermal fluxes in mW/m2 
     
    179179 
    180180            CALL fld_read( nit000, 1, sf_qgh )                         ! Read qgh data 
    181             qgh_trd0(:,:) = r1_rau0_rcp * sf_qgh(1)%fnow(:,:,1) * 1.e-3 ! conversion in W/m2 
     181            qgh_trd0(:,:) = r1_rho0_rcp * sf_qgh(1)%fnow(:,:,1) * 1.e-3 ! conversion in W/m2 
    182182            ! 
    183183         CASE DEFAULT 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/TRA/traldf_iso.F90

    r12377 r12495  
    109109      REAL(wp) ::  zmsku, zahu_w, zabe1, zcof1, zcoef3   ! local scalars 
    110110      REAL(wp) ::  zmskv, zahv_w, zabe2, zcof2, zcoef4   !   -      - 
    111       REAL(wp) ::  zcoef0, ze3w_2, zsign, z2dt, z1_2dt   !   -      - 
     111      REAL(wp) ::  zcoef0, ze3w_2, zsign                 !   -      - 
    112112      REAL(wp), DIMENSION(jpi,jpj)     ::   zdkt, zdk1t, z2d 
    113113      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zdit, zdjt, zftu, zftv, ztfw  
     
    129129         &                        iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  ) )   l_hst = .TRUE. 
    130130      ! 
    131       !                                            ! set time step size (Euler/Leapfrog) 
    132       IF( neuler == 0 .AND. kt == nit000 ) THEN   ;   z2dt =     rdt      ! at nit000   (Euler) 
    133       ELSE                                        ;   z2dt = 2.* rdt      !             (Leapfrog) 
    134       ENDIF 
    135       z1_2dt = 1._wp / z2dt 
    136131      ! 
    137132      IF( kpass == 1 ) THEN   ;   zsign =  1._wp      ! bilaplacian operator require a minus sign (eddy diffusivity >0) 
     
    178173               DO_3D_10_10( 2, jpkm1 ) 
    179174                  ze3w_2 = e3w(ji,jj,jk,Kmm) * e3w(ji,jj,jk,Kmm) 
    180                   zcoef0 = z2dt * (  akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ze3w_2  ) 
    181                   akz(ji,jj,jk) = MAX( zcoef0 - 0.5_wp , 0._wp ) * ze3w_2 * z1_2dt 
     175                  zcoef0 = rDt * (  akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ze3w_2  ) 
     176                  akz(ji,jj,jk) = MAX( zcoef0 - 0.5_wp , 0._wp ) * ze3w_2 * r1_Dt 
    182177               END_3D 
    183178           ENDIF 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/TRA/traldf_triad.F90

    r12377 r12495  
    8686      INTEGER  ::  ip,jp,kp         ! dummy loop indices 
    8787      INTEGER  ::  ierr            ! local integer 
    88       REAL(wp) ::  zmsku, zabe1, zcof1, zcoef3          ! local scalars 
    89       REAL(wp) ::  zmskv, zabe2, zcof2, zcoef4          !   -      - 
    90       REAL(wp) ::  zcoef0, ze3w_2, zsign, z2dt, z1_2dt  !   -      - 
     88      REAL(wp) ::  zmsku, zabe1, zcof1, zcoef3    ! local scalars 
     89      REAL(wp) ::  zmskv, zabe2, zcof2, zcoef4    !   -      - 
     90      REAL(wp) ::  zcoef0, ze3w_2, zsign          !   -      - 
    9191      ! 
    9292      REAL(wp) ::   zslope_skew, zslope_iso, zslope2, zbu, zbv 
     
    111111      l_hst = .FALSE. 
    112112      l_ptr = .FALSE. 
    113       IF( cdtype == 'TRA' .AND. ( iom_use( 'sophtldf' ) .OR. iom_use( 'sopstldf' ) ) )      l_ptr = .TRUE.  
    114       IF( cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 
    115          &                        iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  ) )   l_hst = .TRUE. 
    116       ! 
    117       !                                                        ! set time step size (Euler/Leapfrog) 
    118       IF( neuler == 0 .AND. kt == kit000 ) THEN   ;   z2dt =     rdt      ! at nit000   (Euler) 
    119       ELSE                                        ;   z2dt = 2.* rdt      !             (Leapfrog) 
     113      IF( cdtype == 'TRA' ) THEN 
     114         IF( iom_use( 'sophtldf' ) .OR. iom_use( 'sopstldf') )      l_ptr = .TRUE.  
     115         IF( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR.                   & 
     116         &   iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  )   l_hst = .TRUE. 
    120117      ENDIF 
    121       z1_2dt = 1._wp / z2dt 
    122118      ! 
    123119      IF( kpass == 1 ) THEN   ;   zsign =  1._wp      ! bilaplacian operator require a minus sign (eddy diffusivity >0) 
     
    189185               DO_3D_10_10( 2, jpkm1 ) 
    190186                  ze3w_2 = e3w(ji,jj,jk,Kmm) * e3w(ji,jj,jk,Kmm) 
    191                   zcoef0 = z2dt * (  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 * z1_2dt 
     187                  zcoef0 = rDt * (  akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ze3w_2  ) 
     188                  akz(ji,jj,jk) = MAX( zcoef0 - 0.5_wp , 0._wp ) * ze3w_2 * r1_Dt 
    193189               END_3D 
    194190           ENDIF 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/TRA/tramle.F90

    r12377 r12495  
    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 
     
    112112         zc = e3t(ji,jj,jk,Kmm) * REAL( MIN( MAX( 0, inml_mle(ji,jj)-jk ) , 1  )  )    ! zc being 0 outside the ML t-points 
    113113         zmld(ji,jj) = zmld(ji,jj) + zc 
    114          zbm (ji,jj) = zbm (ji,jj) + zc * (rau0 - rhop(ji,jj,jk) ) * r1_rau0 
     114         zbm (ji,jj) = zbm (ji,jj) + zc * (rho0 - rhop(ji,jj,jk) ) * r1_rho0 
    115115         zn2 (ji,jj) = zn2 (ji,jj) + zc * (rn2(ji,jj,jk)+rn2(ji,jj,jk+1))*0.5_wp 
    116116      END_3D 
     
    273273      IF( ln_mle ) THEN                ! MLE initialisation 
    274274         ! 
    275          rb_c = grav * rn_rho_c_mle /rau0        ! Mixed Layer buoyancy criteria 
     275         rb_c = grav * rn_rho_c_mle /rho0        ! Mixed Layer buoyancy criteria 
    276276         IF(lwp) WRITE(numout,*) 
    277277         IF(lwp) WRITE(numout,*) '      ML buoyancy criteria = ', rb_c, ' m/s2 ' 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/TRA/tranpc.F90

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

    r12377 r12495  
    8787      !!         I(k) = Qsr*( rn_abs*EXP(z(k)/rn_si0) + (1.-rn_abs)*EXP(z(k)/rn_si1) ) 
    8888      !!         The temperature trend associated with the solar radiation penetration  
    89       !!         is given by : zta = 1/e3t dk[ I ] / (rau0*Cp) 
     89      !!         is given by : zta = 1/e3t dk[ I ] / (rho0*Cp) 
    9090      !!         At the bottom, boudary condition for the radiation is no flux : 
    9191      !!      all heat which has not been absorbed in the above levels is put 
     
    135135      !                         !-----------------------------------! 
    136136      IF( kt == nit000 ) THEN          !==  1st time step  ==! 
    137 !!gm case neuler  not taken into account.... 
    138          IF( ln_rstart .AND. iom_varid( numror, 'qsr_hc_b', ldstop = .FALSE. ) > 0 ) THEN    ! read in restart 
     137         IF( ln_rstart .AND. iom_varid( numror, 'qsr_hc_b', ldstop = .FALSE. ) > 0  .AND. .NOT.l_1st_euler ) THEN    ! read in restart 
    139138            IF(lwp) WRITE(numout,*) '          nit000-1 qsr tracer content forcing field read in the restart file' 
    140139            z1_2 = 0.5_wp 
     
    156155         ! 
    157156         DO jk = 1, nksr 
    158             qsr_hc(:,:,jk) = r1_rau0_rcp * ( etot3(:,:,jk) - etot3(:,:,jk+1) ) 
     157            qsr_hc(:,:,jk) = r1_rho0_rcp * ( etot3(:,:,jk) - etot3(:,:,jk+1) ) 
    159158         END DO 
    160159         ! 
     
    228227         ! 
    229228         DO_3D_00_00( 1, nksr ) 
    230             qsr_hc(ji,jj,jk) = r1_rau0_rcp * ( zea(ji,jj,jk) - zea(ji,jj,jk+1) ) 
     229            qsr_hc(ji,jj,jk) = r1_rho0_rcp * ( zea(ji,jj,jk) - zea(ji,jj,jk+1) ) 
    231230         END_3D 
    232231         ! 
     
    235234      CASE( np_2BD  )            !==  2-bands fluxes  ==! 
    236235         ! 
    237          zz0 =        rn_abs   * r1_rau0_rcp      ! surface equi-partition in 2-bands 
    238          zz1 = ( 1. - rn_abs ) * r1_rau0_rcp 
     236         zz0 =        rn_abs   * r1_rho0_rcp      ! surface equi-partition in 2-bands 
     237         zz1 = ( 1. - rn_abs ) * r1_rho0_rcp 
    239238         DO_3D_00_00( 1, nksr ) 
    240239            zc0 = zz0 * EXP( -gdepw(ji,jj,jk  ,Kmm)*xsi0r ) + zz1 * EXP( -gdepw(ji,jj,jk  ,Kmm)*xsi1r ) 
     
    253252      ! sea-ice: store the 1st ocean level attenuation coefficient 
    254253      DO_2D_00_00 
    255          IF( qsr(ji,jj) /= 0._wp ) THEN   ;   fraqsr_1lev(ji,jj) = qsr_hc(ji,jj,1) / ( r1_rau0_rcp * qsr(ji,jj) ) 
     254         IF( qsr(ji,jj) /= 0._wp ) THEN   ;   fraqsr_1lev(ji,jj) = qsr_hc(ji,jj,1) / ( r1_rho0_rcp * qsr(ji,jj) ) 
    256255         ELSE                             ;   fraqsr_1lev(ji,jj) = 1._wp 
    257256         ENDIF 
     
    263262         zetot(:,:,nksr+1:jpk) = 0._wp     ! below ~400m set to zero 
    264263         DO jk = nksr, 1, -1 
    265             zetot(:,:,jk) = zetot(:,:,jk+1) + qsr_hc(:,:,jk) * rau0_rcp 
     264            zetot(:,:,jk) = zetot(:,:,jk+1) + qsr_hc(:,:,jk) * rho0_rcp 
    266265         END DO          
    267266         CALL iom_put( 'qsr3d', zetot )   ! 3D distribution of shortwave Radiation 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/TRA/trasbc.F90

    r12377 r12495  
    124124      !                             !==  Now sbc tracer content fields  ==! 
    125125      DO_2D_01_00 
    126          sbc_tsc(ji,jj,jp_tem) = r1_rau0_rcp * qns(ji,jj)   ! non solar heat flux 
    127          sbc_tsc(ji,jj,jp_sal) = r1_rau0     * sfx(ji,jj)   ! salt flux due to freezing/melting 
     126         sbc_tsc(ji,jj,jp_tem) = r1_rho0_rcp * qns(ji,jj)   ! non solar heat flux 
     127         sbc_tsc(ji,jj,jp_sal) = r1_rho0     * sfx(ji,jj)   ! salt flux due to freezing/melting 
    128128      END_2D 
    129129      IF( ln_linssh ) THEN                !* linear free surface   
    130130         DO_2D_01_00 
    131             sbc_tsc(ji,jj,jp_tem) = sbc_tsc(ji,jj,jp_tem) + r1_rau0 * emp(ji,jj) * pts(ji,jj,1,jp_tem,Kmm) 
    132             sbc_tsc(ji,jj,jp_sal) = sbc_tsc(ji,jj,jp_sal) + r1_rau0 * emp(ji,jj) * pts(ji,jj,1,jp_sal,Kmm) 
     131            sbc_tsc(ji,jj,jp_tem) = sbc_tsc(ji,jj,jp_tem) + r1_rho0 * emp(ji,jj) * pts(ji,jj,1,jp_tem,Kmm) 
     132            sbc_tsc(ji,jj,jp_sal) = sbc_tsc(ji,jj,jp_sal) + r1_rho0 * emp(ji,jj) * pts(ji,jj,1,jp_sal,Kmm) 
    133133         END_2D 
    134134         IF( iom_use('emp_x_sst') )   CALL iom_put( "emp_x_sst", emp (:,:) * pts(:,:,1,jp_tem,Kmm) ) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/TRA/trazdf.F90

    r12377 r12495  
    6666      ENDIF 
    6767      ! 
    68       IF( neuler == 0 .AND. kt == nit000 ) THEN   ;   r2dt =      rdt   ! at nit000, =   rdt (restarting with Euler time stepping) 
    69       ELSEIF( kt <= nit000 + 1           ) THEN   ;   r2dt = 2. * rdt   ! otherwise, = 2 rdt (leapfrog) 
    70       ENDIF 
    71       ! 
    7268      IF( l_trdtra )   THEN                  !* Save ta and sa trends 
    7369         ALLOCATE( ztrdt(jpi,jpj,jpk) , ztrds(jpi,jpj,jpk) ) 
     
    7773      ! 
    7874      !                                      !* compute lateral mixing trend and add it to the general trend 
    79       CALL tra_zdf_imp( kt, nit000, 'TRA', r2dt, Kbb, Kmm, Krhs, pts, Kaa, jpts )  
     75      CALL tra_zdf_imp( kt, nit000, 'TRA', rDt, Kbb, Kmm, Krhs, pts, Kaa, jpts )  
    8076 
    8177!!gm WHY here !   and I don't like that ! 
     
    8985         DO jk = 1, jpkm1 
    9086            ztrdt(:,:,jk) = ( ( pts(:,:,jk,jp_tem,Kaa)*e3t(:,:,jk,Kaa) - pts(:,:,jk,jp_tem,Kbb)*e3t(:,:,jk,Kbb) ) & 
    91                &          / (e3t(:,:,jk,Kmm)*r2dt) ) - ztrdt(:,:,jk) 
     87               &          / (e3t(:,:,jk,Kmm)*rDt) ) - ztrdt(:,:,jk) 
    9288            ztrds(:,:,jk) = ( ( pts(:,:,jk,jp_sal,Kaa)*e3t(:,:,jk,Kaa) - pts(:,:,jk,jp_sal,Kbb)*e3t(:,:,jk,Kbb) ) & 
    93               &           / (e3t(:,:,jk,Kmm)*r2dt) ) - ztrds(:,:,jk) 
     89              &           / (e3t(:,:,jk,Kmm)*rDt) ) - ztrds(:,:,jk) 
    9490         END DO 
    9591!!gm this should be moved in trdtra.F90 and done on all trends 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/TRD/trddyn.F90

    r12377 r12495  
    140140                              !                                    ! wind stress trends 
    141141                              ALLOCATE( z2dx(jpi,jpj) , z2dy(jpi,jpj) ) 
    142                               z2dx(:,:) = ( utau_b(:,:) + utau(:,:) ) / ( e3u(:,:,1,Kmm) * rau0 ) 
    143                               z2dy(:,:) = ( vtau_b(:,:) + vtau(:,:) ) / ( e3v(:,:,1,Kmm) * rau0 ) 
     142                              z2dx(:,:) = ( utau_b(:,:) + utau(:,:) ) / ( e3u(:,:,1,Kmm) * rho0 ) 
     143                              z2dy(:,:) = ( vtau_b(:,:) + vtau(:,:) ) / ( e3v(:,:,1,Kmm) * rho0 ) 
    144144                              CALL iom_put( "utrd_tau", z2dx ) 
    145145                              CALL iom_put( "vtrd_tau", z2dy ) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/TRD/trdglo.F90

    r12377 r12495  
    7676      INTEGER ::   ji, jj, jk      ! dummy loop indices 
    7777      INTEGER ::   ikbu, ikbv      ! local integers 
    78       REAL(wp)::   zvm, zvt, zvs, z1_2rau0   ! local scalars 
     78      REAL(wp)::   zvm, zvt, zvs, z1_2rho0   ! local scalars 
    7979      REAL(wp), DIMENSION(jpi,jpj)  :: ztswu, ztswv, z2dx, z2dy   ! 2D workspace  
    8080      !!---------------------------------------------------------------------- 
     
    125125            !                  
    126126            IF( ktrd == jpdyn_zdf ) THEN      ! zdf trend: compute separately the surface forcing trend 
    127                z1_2rau0 = 0.5_wp / rau0 
     127               z1_2rho0 = 0.5_wp / rho0 
    128128               DO_2D_10_10 
    129129                  zvt = ( utau_b(ji,jj) + utau(ji,jj) ) * tmask_i(ji+1,jj) * tmask_i(ji,jj) * umask(ji,jj,jk)   & 
    130                      &                                                     * z1_2rau0       * e1e2u(ji,jj) 
     130                     &                                                     * z1_2rho0       * e1e2u(ji,jj) 
    131131                  zvs = ( vtau_b(ji,jj) + vtau(ji,jj) ) * tmask_i(ji,jj+1) * tmask_i(ji,jj) * vmask(ji,jj,jk)   & 
    132                      &                                                     * z1_2rau0       * e1e2v(ji,jj) 
     132                     &                                                     * z1_2rho0       * e1e2v(ji,jj) 
    133133                  umo(jpdyn_tau) = umo(jpdyn_tau) + zvt 
    134134                  vmo(jpdyn_tau) = vmo(jpdyn_tau) + zvs 
     
    141141!               ! 
    142142!               IF( ln_drgimp ) THEN                   ! implicit drag case: compute separately the bottom friction  
    143 !                  z1_2rau0 = 0.5_wp / rau0 
     143!                  z1_2rho0 = 0.5_wp / rho0 
    144144!                  DO jj = 1, jpjm1 
    145145!                     DO ji = 1, jpim1 
     
    203203         CALL eos( ts(:,:,:,:,Kmm), rhd, rhop )       ! now potential density 
    204204 
    205          zcof = 0.5_wp / rau0             ! Density flux at w-point 
     205         zcof = 0.5_wp / rho0             ! Density flux at w-point 
    206206         zkz(:,:,1) = 0._wp 
    207207         DO jk = 2, jpk 
     
    209209         END DO 
    210210          
    211          zcof   = 0.5_wp / rau0           ! Density flux at u and v-points 
     211         zcof   = 0.5_wp / rho0           ! Density flux at u and v-points 
    212212         DO_3D_10_10( 1, jpkm1 ) 
    213213            zkx(ji,jj,jk) = zcof * e2u(ji,jj) * e3u(ji,jj,jk,Kmm) * uu(ji,jj,jk,Kmm) * ( rhop(ji,jj,jk) + rhop(ji+1,jj,jk) ) 
     
    347347 9546    FORMAT(' 0 < horizontal diffusion                                  : ', e20.13) 
    348348 9547    FORMAT(' 0 < vertical diffusion                                    : ', e20.13) 
    349  9548    FORMAT(' pressure gradient u2 = - 1/rau0 u.dz(rhop)                : ', e20.13, '  u.dz(rhop) =', e20.13) 
     349 9548    FORMAT(' pressure gradient u2 = - 1/rho0 u.dz(rhop)                : ', e20.13, '  u.dz(rhop) =', e20.13) 
    350350         ! 
    351351         ! Save potential to kinetic energy conversion for next time step 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/TRD/trdken.F90

    r12377 r12495  
    102102      zke(:,1, : ) = 0._wp 
    103103      DO_3D_01_01( 1, jpkm1 ) 
    104          zke(ji,jj,jk) = 0.5_wp * rau0 *( uu(ji  ,jj,jk,Kmm) * putrd(ji  ,jj,jk) * bu(ji  ,jj,jk)  & 
     104         zke(ji,jj,jk) = 0.5_wp * rho0 *( uu(ji  ,jj,jk,Kmm) * putrd(ji  ,jj,jk) * bu(ji  ,jj,jk)  & 
    105105            &                           + uu(ji-1,jj,jk,Kmm) * putrd(ji-1,jj,jk) * bu(ji-1,jj,jk)  & 
    106106            &                           + vv(ji,jj  ,jk,Kmm) * pvtrd(ji,jj  ,jk) * bv(ji,jj  ,jk)  & 
     
    123123                           zke2d(1,:) = 0._wp   ;   zke2d(:,1) = 0._wp 
    124124                           DO_2D_01_01 
    125                               zke2d(ji,jj) = r1_rau0 * 0.5_wp * (   z2dx(ji,jj) + z2dx(ji-1,jj)   & 
     125                              zke2d(ji,jj) = r1_rho0 * 0.5_wp * (   z2dx(ji,jj) + z2dx(ji-1,jj)   & 
    126126                              &                                   + z2dy(ji,jj) + z2dy(ji,jj-1)   ) * r1_bt(ji,jj,1) 
    127127                           END_2D 
     
    207207      ! 
    208208      ! Local constant initialization  
    209       zcoef = - rau0 * grav * 0.5_wp       
     209      zcoef = - rho0 * grav * 0.5_wp       
    210210       
    211211      !  Surface value (also valid in partial step case) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/TRD/trdtra.F90

    r12377 r12495  
    237237      !!---------------------------------------------------------------------- 
    238238 
    239       IF( neuler == 0 .AND. kt == nit000    ) THEN   ;   r2dt =      rdt      ! = rdt (restart with Euler time stepping) 
    240       ELSEIF(               kt <= nit000 + 1) THEN   ;   r2dt = 2. * rdt      ! = 2 rdt (leapfrog) 
    241       ENDIF 
    242  
    243239      !                   ! 3D output of tracers trends using IOM interface 
    244240      IF( ln_tra_trd )   CALL trd_tra_iom ( ptrdx, ptrdy, ktrd, kt, Kmm ) 
     
    248244 
    249245      !                   ! Potential ENergy trends 
    250       IF( ln_PE_trd  )   CALL trd_pen( ptrdx, ptrdy, ktrd, kt, r2dt, Kmm ) 
     246      IF( ln_PE_trd  )   CALL trd_pen( ptrdx, ptrdy, ktrd, kt, rDt, Kmm ) 
    251247 
    252248      !                   ! Mixed layer trends for active tracers 
     
    281277         CASE ( jptra_atf )        ;   CALL trd_mxl_zint( ptrdx, ptrdy, jpmxl_atf, '3D' )   ! asselin time filter (last trend) 
    282278                                   ! 
    283                                        CALL trd_mxl( kt, r2dt )                             ! trends: Mixed-layer (output) 
     279                                       CALL trd_mxl( kt, rDt )                             ! trends: Mixed-layer (output) 
    284280         END SELECT 
    285281         ! 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/TRD/trdvor.F90

    r12377 r12495  
    105105         ztswu(:,:) = 0.e0   ;   ztswv(:,:) = 0.e0 
    106106         DO_2D_00_00 
    107             ztswu(ji,jj) = 0.5 * ( utau_b(ji,jj) + utau(ji,jj) ) / ( e3u(ji,jj,1,Kmm) * rau0 ) 
    108             ztswv(ji,jj) = 0.5 * ( vtau_b(ji,jj) + vtau(ji,jj) ) / ( e3v(ji,jj,1,Kmm) * rau0 ) 
     107            ztswu(ji,jj) = 0.5 * ( utau_b(ji,jj) + utau(ji,jj) ) / ( e3u(ji,jj,1,Kmm) * rho0 ) 
     108            ztswv(ji,jj) = 0.5 * ( vtau_b(ji,jj) + vtau(ji,jj) ) / ( e3v(ji,jj,1,Kmm) * rho0 ) 
    109109         END_2D 
    110110         ! 
     
    385385         ! III.1 compute total trend 
    386386         ! ------------------------ 
    387          zmean = 1._wp / (  REAL( nmoydpvor, wp ) * 2._wp * rdt  ) 
     387         zmean = 1._wp / (  REAL( nmoydpvor, wp ) * 2._wp * rn_Dt  ) 
    388388         vor_avrtot(:,:) = (  vor_avr(:,:) - vor_avrbn(:,:) + vor_avrb(:,:) - vor_avrbb(:,:) ) * zmean 
    389389 
     
    504504      ENDIF 
    505505#if defined key_diainstant 
    506       zsto = nn_write*rdt 
     506      zsto = nn_write*rn_Dt 
    507507      clop = "inst("//TRIM(clop)//")" 
    508508#else 
    509       zsto = rdt 
     509      zsto = rn_Dt 
    510510      clop = "ave("//TRIM(clop)//")" 
    511511#endif 
    512       zout = nn_trd*rdt 
     512      zout = nn_trd*rn_Dt 
    513513 
    514514      IF(lwp) WRITE(numout,*) '               netCDF initialization' 
     
    516516      ! II.2 Compute julian date from starting date of the run 
    517517      ! ------------------------ 
    518       CALL ymds2ju( nyear, nmonth, nday, rdt, zjulian ) 
     518      CALL ymds2ju( nyear, nmonth, nday, rn_Dt, zjulian ) 
    519519      zjulian = zjulian - adatrj   !   set calendar origin to the beginning of the experiment 
    520520      IF(lwp) WRITE(numout,*)' '   
     
    528528      IF(lwp) WRITE(numout,*) ' Name of NETCDF file ', clhstnam 
    529529      CALL histbeg( clhstnam, jpi, glamf, jpj, gphif,1, jpi,   &  ! Horizontal grid : glamt and gphit 
    530          &          1, jpj, nit000-1, zjulian, rdt, nh_t, nidvor, domain_id=nidom, snc4chunks=snc4set ) 
     530         &          1, jpj, nit000-1, zjulian, rn_Dt, nh_t, nidvor, domain_id=nidom, snc4chunks=snc4set ) 
    531531      CALL wheneq( jpi*jpj, fmask, 1, 1., ndexvor1, ndimvor1 )    ! surface 
    532532 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/USR/usrdef_hgr.F90

    r12377 r12495  
    107107      IF( ln_bench ) THEN     ! benchmark: forced the resolution to be 106 km  
    108108         ze1 = 106000._wp     ! but keep (lat,lon) at the right nn_GYRE resolution 
    109          CALL ctl_warn( ' GYRE used as Benchmark: e1=e2=106km, no need to adjust rdt, ahm,aht ' ) 
     109         CALL ctl_warn( ' GYRE used as Benchmark: e1=e2=106km, no need to adjust rn_Dt, ahm,aht ' ) 
    110110      ENDIF 
    111111      IF( nprint==1 .AND. lwp )   THEN 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/USR/usrdef_sbc.F90

    r12377 r12495  
    8989 
    9090      ! current day (in hours) since january the 1st of the current year 
    91       ztime = REAL( kt ) * rdt / (rmmss * rhhmm)   &       !  total incrementation (in hours) 
     91      ztime = REAL( kt ) * rn_Dt / (rmmss * rhhmm)   &       !  total incrementation (in hours) 
    9292         &      - (nyear  - 1) * rjjhh * zyydd             !  minus years since beginning of experiment (in hours) 
    9393 
     
    154154      !accumulates days of previous months of this year 
    155155      ! day (in hours) since january the 1st 
    156       ztime = FLOAT( kt ) * rdt / (rmmss * rhhmm)  &  ! incrementation in hour 
     156      ztime = FLOAT( kt ) * rn_Dt / (rmmss * rhhmm)  &  ! incrementation in hour 
    157157         &     - (nyear - 1) * rjjhh * zyydd          !  - nber of hours the precedent years 
    158158      ztimemax = ((5.*30.)+21.)* 24.               ! 21th june     in hours 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/ZDF/zdfdrg.F90

    r12377 r12495  
    165165      !!--------------------------------------------------------------------- 
    166166      ! 
    167 !!gm bug : time step is only rdt (not 2 rdt if euler start !) 
    168       zm1_2dt = - 1._wp / ( 2._wp * rdt ) 
     167!!gm bug : time step is only rn_Dt (not 2 rn_Dt if euler start !) 
     168      zm1_2dt = - 1._wp / ( 2._wp * rn_Dt ) 
    169169 
    170170      IF( l_trddyn ) THEN      ! trends: store the input trends 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/ZDF/zdfgls.F90

    r12377 r12495  
    170170         ! 
    171171         ! surface friction 
    172          ustar2_surf(ji,jj) = r1_rau0 * taum(ji,jj) * tmask(ji,jj,1) 
     172         ustar2_surf(ji,jj) = r1_rho0 * taum(ji,jj) * tmask(ji,jj,1) 
    173173         !    
    174174!!gm Rq we may add here r_ke0(_top/_bot) ?  ==>> think about that... 
     
    267267         zd_up(ji,jj,jk) = zcof * ( p_avm(ji,jj,jk+1) + p_avm(ji,jj,jk  ) ) / ( e3t(ji,jj,jk  ,Kmm) * e3w(ji,jj,jk,Kmm) ) 
    268268         !                                        ! diagonal 
    269          zdiag(ji,jj,jk) = 1._wp - zd_lw(ji,jj,jk) - zd_up(ji,jj,jk)  + rdt * zdiss * wmask(ji,jj,jk)  
     269         zdiag(ji,jj,jk) = 1._wp - zd_lw(ji,jj,jk) - zd_up(ji,jj,jk)  + rn_Dt * zdiss * wmask(ji,jj,jk)  
    270270         !                                        ! right hand side in en 
    271          en(ji,jj,jk) = en(ji,jj,jk) + rdt * zesh2 * wmask(ji,jj,jk) 
     271         en(ji,jj,jk) = en(ji,jj,jk) + rn_Dt * zesh2 * wmask(ji,jj,jk) 
    272272      END_3D 
    273273      ! 
     
    477477         zd_up(ji,jj,jk) = zcof * ( p_avm(ji,jj,jk+1) + p_avm(ji,jj,jk  ) ) / ( e3t(ji,jj,jk  ,Kmm) * e3w(ji,jj,jk,Kmm) ) 
    478478         !                                               ! diagonal 
    479          zdiag(ji,jj,jk) = 1._wp - zd_lw(ji,jj,jk) - zd_up(ji,jj,jk) + rdt * zdiss * wmask(ji,jj,jk) 
     479         zdiag(ji,jj,jk) = 1._wp - zd_lw(ji,jj,jk) - zd_up(ji,jj,jk) + rn_Dt * zdiss * wmask(ji,jj,jk) 
    480480         !                                               ! right hand side in psi 
    481          psi(ji,jj,jk) = psi(ji,jj,jk) + rdt * zesh2 * wmask(ji,jj,jk) 
     481         psi(ji,jj,jk) = psi(ji,jj,jk) + rn_Dt * zesh2 * wmask(ji,jj,jk) 
    482482      END_3D 
    483483      ! 
     
    10071007      rc04  = rc03 * rc0 
    10081008      rsbc_tke1 = -3._wp/2._wp*rn_crban*ra_sf*rl_sf                      ! Dirichlet + Wave breaking 
    1009       rsbc_tke2 = rdt * rn_crban / rl_sf                                 ! Neumann + Wave breaking  
     1009      rsbc_tke2 = rn_Dt * rn_crban / rl_sf                                 ! Neumann + Wave breaking  
    10101010      zcr = MAX(rsmall, rsbc_tke1**(1./(-ra_sf*3._wp/2._wp))-1._wp ) 
    10111011      rtrans = 0.2_wp / zcr                                              ! Ad. inverse transition length between log and wave layer  
    10121012      rsbc_zs1  = rn_charn/grav                                          ! Charnock formula for surface roughness 
    10131013      rsbc_zs2  = rn_frac_hs / 0.85_wp / grav * 665._wp                  ! Rascle formula for surface roughness  
    1014       rsbc_psi1 = -0.5_wp * rdt * rc0**(rpp-2._wp*rmm) / rsc_psi 
    1015       rsbc_psi2 = -0.5_wp * rdt * rc0**rpp * rnn * vkarmn**rnn / rsc_psi ! Neumann + NO Wave breaking  
    1016       ! 
    1017       rfact_tke = -0.5_wp / rsc_tke * rdt                                ! Cst used for the Diffusion term of tke 
    1018       rfact_psi = -0.5_wp / rsc_psi * rdt                                ! Cst used for the Diffusion term of tke 
     1014      rsbc_psi1 = -0.5_wp * rn_Dt * rc0**(rpp-2._wp*rmm) / rsc_psi 
     1015      rsbc_psi2 = -0.5_wp * rn_Dt * rc0**rpp * rnn * vkarmn**rnn / rsc_psi ! Neumann + NO Wave breaking  
     1016      ! 
     1017      rfact_tke = -0.5_wp / rsc_tke * rn_Dt                                ! Cst used for the Diffusion term of tke 
     1018      rfact_psi = -0.5_wp / rsc_psi * rn_Dt                                ! Cst used for the Diffusion term of tke 
    10191019      ! 
    10201020      !                                !* Wall proximity function 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/ZDF/zdfiwm.F90

    r12377 r12495  
    8787      !!              This is divided into three components: 
    8888      !!                 1. Bottom-intensified low-mode dissipation at critical slopes 
    89       !!                     zemx_iwm(z) = ( ecri_iwm / rau0 ) * EXP( -(H-z)/hcri_iwm ) 
     89      !!                     zemx_iwm(z) = ( ecri_iwm / rho0 ) * EXP( -(H-z)/hcri_iwm ) 
    9090      !!                                   / ( 1. - EXP( - H/hcri_iwm ) ) * hcri_iwm 
    9191      !!              where hcri_iwm is the characteristic length scale of the bottom  
    9292      !!              intensification, ecri_iwm a map of available power, and H the ocean depth. 
    9393      !!                 2. Pycnocline-intensified low-mode dissipation 
    94       !!                     zemx_iwm(z) = ( epyc_iwm / rau0 ) * ( sqrt(rn2(z))^nn_zpyc ) 
     94      !!                     zemx_iwm(z) = ( epyc_iwm / rho0 ) * ( sqrt(rn2(z))^nn_zpyc ) 
    9595      !!                                   / SUM( sqrt(rn2(z))^nn_zpyc * e3w(z) ) 
    9696      !!              where epyc_iwm is a map of available power, and nn_zpyc 
     
    9898      !!              energy dissipation. 
    9999      !!                 3. WKB-height dependent high mode dissipation 
    100       !!                     zemx_iwm(z) = ( ebot_iwm / rau0 ) * rn2(z) * EXP(-z_wkb(z)/hbot_iwm) 
     100      !!                     zemx_iwm(z) = ( ebot_iwm / rho0 ) * rn2(z) * EXP(-z_wkb(z)/hbot_iwm) 
    101101      !!                                   / SUM( rn2(z) * EXP(-z_wkb(z)/hbot_iwm) * e3w(z) ) 
    102102      !!              where hbot_iwm is the characteristic length scale of the WKB bottom  
     
    151151      DO_2D_11_11 
    152152         zhdep(ji,jj) = gdepw_0(ji,jj,mbkt(ji,jj)+1)       ! depth of the ocean 
    153          zfact(ji,jj) = rau0 * (  1._wp - EXP( -zhdep(ji,jj) / hcri_iwm(ji,jj) )  ) 
     153         zfact(ji,jj) = rho0 * (  1._wp - EXP( -zhdep(ji,jj) / hcri_iwm(ji,jj) )  ) 
    154154         IF( zfact(ji,jj) /= 0._wp )   zfact(ji,jj) = ecri_iwm(ji,jj) / zfact(ji,jj) 
    155155      END_2D 
     
    181181         ! 
    182182         DO_2D_11_11 
    183             IF( zfact(ji,jj) /= 0 )   zfact(ji,jj) = epyc_iwm(ji,jj) / ( rau0 * zfact(ji,jj) ) 
     183            IF( zfact(ji,jj) /= 0 )   zfact(ji,jj) = epyc_iwm(ji,jj) / ( rho0 * zfact(ji,jj) ) 
    184184         END_2D 
    185185         ! 
     
    196196         ! 
    197197         DO_2D_11_11 
    198             IF( zfact(ji,jj) /= 0 )   zfact(ji,jj) = epyc_iwm(ji,jj) / ( rau0 * zfact(ji,jj) ) 
     198            IF( zfact(ji,jj) /= 0 )   zfact(ji,jj) = epyc_iwm(ji,jj) / ( rho0 * zfact(ji,jj) ) 
    199199         END_2D 
    200200         ! 
     
    243243      ! 
    244244      DO_2D_11_11 
    245          IF( zfact(ji,jj) /= 0 )   zfact(ji,jj) = ebot_iwm(ji,jj) / ( rau0 * zfact(ji,jj) ) 
     245         IF( zfact(ji,jj) /= 0 )   zfact(ji,jj) = ebot_iwm(ji,jj) / ( rho0 * zfact(ji,jj) ) 
    246246      END_2D 
    247247      ! 
     
    255255      ! Calculate molecular kinematic viscosity 
    256256      znu_t(:,:,:) = 1.e-4_wp * (  17.91_wp - 0.53810_wp * ts(:,:,:,jp_tem,Kmm) + 0.00694_wp * ts(:,:,:,jp_tem,Kmm) * ts(:,:,:,jp_tem,Kmm)  & 
    257          &                                  + 0.02305_wp * ts(:,:,:,jp_sal,Kmm)  ) * tmask(:,:,:) * r1_rau0 
     257         &                                  + 0.02305_wp * ts(:,:,:,jp_sal,Kmm)  ) * tmask(:,:,:) * r1_rho0 
    258258      DO jk = 2, jpkm1 
    259259         znu_w(:,:,jk) = 0.5_wp * ( znu_t(:,:,jk-1) + znu_t(:,:,jk) ) * wmask(:,:,jk) 
     
    293293         END_3D 
    294294         CALL mpp_sum( 'zdfiwm', zztmp ) 
    295          zztmp = rau0 * zztmp ! Global integral of rauo * Kz * N^2 = power contributing to mixing  
     295         zztmp = rho0 * zztmp ! Global integral of rauo * Kz * N^2 = power contributing to mixing  
    296296         ! 
    297297         IF(lwp) THEN 
     
    337337                                    !* output useful diagnostics: Kz*N^2 ,  
    338338!!gm Kz*N2 should take into account the ratio avs/avt if it is used.... (see diaar5) 
    339                                     !  vertical integral of rau0 * Kz * N^2 , energy density (zemx_iwm) 
     339                                    !  vertical integral of rho0 * Kz * N^2 , energy density (zemx_iwm) 
    340340      IF( iom_use("bflx_iwm") .OR. iom_use("pcmap_iwm") ) THEN 
    341341         ALLOCATE( z2d(jpi,jpj) , z3d(jpi,jpj,jpk) ) 
     
    345345            z2d(:,:) = z2d(:,:) + e3w(:,:,jk,Kmm) * z3d(:,:,jk) * wmask(:,:,jk) 
    346346         END DO 
    347          z2d(:,:) = rau0 * z2d(:,:) 
     347         z2d(:,:) = rho0 * z2d(:,:) 
    348348         CALL iom_put( "bflx_iwm", z3d ) 
    349349         CALL iom_put( "pcmap_iwm", z2d ) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/ZDF/zdfmxl.F90

    r12377 r12495  
    9797      nmln(:,:)  = nlb10               ! Initialization to the number of w ocean point 
    9898      hmlp(:,:)  = 0._wp               ! here hmlp used as a dummy variable, integrating vertically N^2 
    99       zN2_c = grav * rho_c * r1_rau0   ! convert density criteria into N^2 criteria 
     99      zN2_c = grav * rho_c * r1_rho0   ! convert density criteria into N^2 criteria 
    100100      DO_3D_11_11( nlb10, jpkm1 ) 
    101101         ikt = mbkt(ji,jj) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/ZDF/zdfosm.F90

    r12377 r12495  
    300300     DO_2D_00_00 
    301301        ! Surface downward irradiance (so always +ve) 
    302         zrad0(ji,jj) = qsr(ji,jj) * r1_rau0_rcp 
     302        zrad0(ji,jj) = qsr(ji,jj) * r1_rho0_rcp 
    303303        ! Downwards irradiance at base of boundary layer 
    304304        zradh(ji,jj) = zrad0(ji,jj) * ( zz0 * EXP( -hbl(ji,jj)/rn_si0 ) + zz1 * EXP( -hbl(ji,jj)/rn_si1) ) 
     
    312312        zbeta    = rab_n(ji,jj,1,jp_sal) 
    313313        ! Upwards surface Temperature flux for non-local term 
    314         zwth0(ji,jj) = - qns(ji,jj) * r1_rau0_rcp * tmask(ji,jj,1) 
     314        zwth0(ji,jj) = - qns(ji,jj) * r1_rho0_rcp * tmask(ji,jj,1) 
    315315        ! Upwards surface salinity flux for non-local term 
    316         zws0(ji,jj) = - ( ( emp(ji,jj)-rnf(ji,jj) ) * ts(ji,jj,1,jp_sal,Kmm)  + sfx(ji,jj) ) * r1_rau0 * tmask(ji,jj,1) 
     316        zws0(ji,jj) = - ( ( emp(ji,jj)-rnf(ji,jj) ) * ts(ji,jj,1,jp_sal,Kmm)  + sfx(ji,jj) ) * r1_rho0 * tmask(ji,jj,1) 
    317317        ! Non radiative upwards surface buoyancy flux 
    318318        zwb0(ji,jj) = grav * zthermal * zwth0(ji,jj) -  grav * zbeta * zws0(ji,jj) 
     
    324324        zwbav(ji,jj) = grav  * zthermal * zwthav(ji,jj) - grav  * zbeta * zwsav(ji,jj) 
    325325        ! Surface upward velocity fluxes 
    326         zuw0(ji,jj) = -utau(ji,jj) * r1_rau0 * tmask(ji,jj,1) 
    327         zvw0(ji,jj) = -vtau(ji,jj) * r1_rau0 * tmask(ji,jj,1) 
     326        zuw0(ji,jj) = -utau(ji,jj) * r1_rho0 * tmask(ji,jj,1) 
     327        zvw0(ji,jj) = -vtau(ji,jj) * r1_rho0 * tmask(ji,jj,1) 
    328328        ! Friction velocity (zustar), at T-point : LMD94 eq. 2 
    329329        zustar(ji,jj) = MAX( SQRT( SQRT( zuw0(ji,jj) * zuw0(ji,jj) + zvw0(ji,jj) * zvw0(ji,jj) ) ), 1.0e-8 ) 
     
    441441                        &            + 0.135 * zla(ji,jj) * zwstrl(ji,jj)**3/hbl(ji,jj) ) 
    442442 
    443                    zvel_max =  - ( 1.0 + 1.0 * ( zwstrl(ji,jj)**3 + 0.5 * zwstrc(ji,jj)**3 )**pthird * rn_rdt / hbl(ji,jj) ) & 
     443                   zvel_max =  - ( 1.0 + 1.0 * ( zwstrl(ji,jj)**3 + 0.5 * zwstrc(ji,jj)**3 )**pthird * rn_Dt / hbl(ji,jj) ) & 
    444444                        &   * zwb_ent(ji,jj) / ( zwstrl(ji,jj)**3 + 0.5 * zwstrc(ji,jj)**3 )**pthird 
    445445! Entrainment including component due to shear turbulence. Modified Langmuir component, but gives same result for La=0.3 For testing uncomment. 
     
    447447!                           &            + ( 0.15 * ( 1.0 - EXP( -0.5 * zla(ji,jj) ) ) + 0.03 / zla(ji,jj)**2 ) * zustar(ji,jj)**3/hbl(ji,jj) ) 
    448448 
    449 !                      zvel_max = - ( 1.0 + 1.0 * ( zvstr(ji,jj)**3 + 0.5 * zwstrc(ji,jj)**3 )**pthird * rn_rdt / zhbl(ji,jj) ) * zwb_ent(ji,jj) / & 
     449!                      zvel_max = - ( 1.0 + 1.0 * ( zvstr(ji,jj)**3 + 0.5 * zwstrc(ji,jj)**3 )**pthird * rn_Dt / zhbl(ji,jj) ) * zwb_ent(ji,jj) / & 
    450450!                           &       ( zvstr(ji,jj)**3 + 0.5 * zwstrc(ji,jj)**3 )**pthird 
    451451                   zzdhdt = - zwb_ent(ji,jj) / ( zvel_max + MAX(zdb_bl(ji,jj),0.0) ) 
     
    458458                   IF ( zzdhdt < 0._wp ) THEN 
    459459                   ! For long timsteps factor in brackets slows the rapid collapse of the OSBL 
    460                       zpert   = 2.0 * ( 1.0 + 2.0 * zwstrl(ji,jj) * rn_rdt / hbl(ji,jj) ) * zwstrl(ji,jj)**2 / hbl(ji,jj) 
     460                      zpert   = 2.0 * ( 1.0 + 2.0 * zwstrl(ji,jj) * rn_Dt / hbl(ji,jj) ) * zwstrl(ji,jj)**2 / hbl(ji,jj) 
    461461                   ELSE 
    462                       zpert   = 2.0 * ( 1.0 + 2.0 * zwstrl(ji,jj) * rn_rdt / hbl(ji,jj) ) * zwstrl(ji,jj)**2 / hbl(ji,jj) & 
     462                      zpert   = 2.0 * ( 1.0 + 2.0 * zwstrl(ji,jj) * rn_Dt / hbl(ji,jj) ) * zwstrl(ji,jj)**2 / hbl(ji,jj) & 
    463463                           &  + MAX( zdb_bl(ji,jj), 0.0 ) 
    464464                   ENDIF 
     
    472472      ibld(:,:) = 3 
    473473 
    474       zhbl_t(:,:) = hbl(:,:) + (zdhdt(:,:) - ww(ji,jj,ibld(ji,jj)))* rn_rdt ! certainly need wb here, so subtract it 
     474      zhbl_t(:,:) = hbl(:,:) + (zdhdt(:,:) - ww(ji,jj,ibld(ji,jj)))* rn_Dt ! certainly need wb here, so subtract it 
    475475      zhbl_t(:,:) = MIN(zhbl_t(:,:), ht(:,:)) 
    476       zdhdt(:,:) = MIN(zdhdt(:,:), (zhbl_t(:,:) - hbl(:,:))/rn_rdt + ww(ji,jj,ibld(ji,jj))) ! adjustment to represent limiting by ocean bottom 
     476      zdhdt(:,:) = MIN(zdhdt(:,:), (zhbl_t(:,:) - hbl(:,:))/rn_Dt + ww(ji,jj,ibld(ji,jj))) ! adjustment to represent limiting by ocean bottom 
    477477 
    478478      DO_3D_00_00( 4, jpkm1 ) 
     
    496496            IF ( lconv(ji,jj) ) THEN 
    497497!unstable 
    498                zvel_max =  - ( 1.0 + 1.0 * ( zvstr(ji,jj)**3 + 0.5 * zwstrc(ji,jj)**3 )**pthird * rn_rdt / hbl(ji,jj) ) & 
     498               zvel_max =  - ( 1.0 + 1.0 * ( zvstr(ji,jj)**3 + 0.5 * zwstrc(ji,jj)**3 )**pthird * rn_Dt / hbl(ji,jj) ) & 
    499499                    &   * zwb_ent(ji,jj) / ( zvstr(ji,jj)**3 + 0.5 * zwstrc(ji,jj)**3 )**pthird 
    500500 
     
    503503                       & - zbeta * ( zs_bl(ji,jj) - ts(ji,jj,jm,jp_sal,Kmm) ) ), 0.0 ) + zvel_max 
    504504 
    505                   zhbl_s = zhbl_s + MIN( - zwb_ent(ji,jj) / zdb * rn_rdt / FLOAT(ibld(ji,jj)-imld(ji,jj) ), e3w(ji,jj,jk,Kmm) ) 
     505                  zhbl_s = zhbl_s + MIN( - zwb_ent(ji,jj) / zdb * rn_Dt / FLOAT(ibld(ji,jj)-imld(ji,jj) ), e3w(ji,jj,jk,Kmm) ) 
    506506                  zhbl_s = MIN(zhbl_s, ht(ji,jj)) 
    507507 
     
    12501250            IF ( iom_use("us_x") ) CALL iom_put( "us_x", tmask(:,:,1)*zustke*zcos_wind )   ! x surface Stokes drift 
    12511251            IF ( iom_use("us_y") ) CALL iom_put( "us_y", tmask(:,:,1)*zustke*zsin_wind )  ! y surface Stokes drift 
    1252             IF ( iom_use("wind_wave_abs_power") ) CALL iom_put( "wind_wave_abs_power", 1000.*rau0*tmask(:,:,1)*zustar**2*zustke ) 
     1252            IF ( iom_use("wind_wave_abs_power") ) CALL iom_put( "wind_wave_abs_power", 1000.*rho0*tmask(:,:,1)*zustar**2*zustke ) 
    12531253         ! Stokes drift read in from sbcwave  (=2). 
    12541254         CASE(2) 
    12551255            IF ( iom_use("us_x") ) CALL iom_put( "us_x", ut0sd )               ! x surface Stokes drift 
    12561256            IF ( iom_use("us_y") ) CALL iom_put( "us_y", vt0sd )               ! y surface Stokes drift 
    1257             IF ( iom_use("wind_wave_abs_power") ) CALL iom_put( "wind_wave_abs_power", 1000.*rau0*tmask(:,:,1)*zustar**2* & 
     1257            IF ( iom_use("wind_wave_abs_power") ) CALL iom_put( "wind_wave_abs_power", 1000.*rho0*tmask(:,:,1)*zustar**2* & 
    12581258                 & SQRT(ut0sd**2 + vt0sd**2 ) ) 
    12591259         END SELECT 
     
    12711271         IF ( iom_use("zwstrl") ) CALL iom_put( "zwstrl", tmask(:,:,1)*zwstrl )         ! Langmuir velocity scale 
    12721272         IF ( iom_use("zustar") ) CALL iom_put( "zustar", tmask(:,:,1)*zustar )         ! friction velocity scale 
    1273          IF ( iom_use("wind_power") ) CALL iom_put( "wind_power", 1000.*rau0*tmask(:,:,1)*zustar**3 ) ! BL depth internal to zdf_osm routine 
    1274          IF ( iom_use("wind_wave_power") ) CALL iom_put( "wind_wave_power", 1000.*rau0*tmask(:,:,1)*zustar**2*zustke ) 
     1273         IF ( iom_use("wind_power") ) CALL iom_put( "wind_power", 1000.*rho0*tmask(:,:,1)*zustar**3 ) ! BL depth internal to zdf_osm routine 
     1274         IF ( iom_use("wind_wave_power") ) CALL iom_put( "wind_wave_power", 1000.*rho0*tmask(:,:,1)*zustar**2*zustke ) 
    12751275         IF ( iom_use("zhbl") ) CALL iom_put( "zhbl", tmask(:,:,1)*zhbl )               ! BL depth internal to zdf_osm routine 
    12761276         IF ( iom_use("zhml") ) CALL iom_put( "zhml", tmask(:,:,1)*zhml )               ! ML depth internal to zdf_osm routine 
     
    15001500     imld_rst(:,:)  = nlb10         ! Initialization to the number of w ocean point 
    15011501     hbl(:,:)  = 0._wp              ! here hbl used as a dummy variable, integrating vertically N^2 
    1502      zN2_c = grav * rho_c * r1_rau0 ! convert density criteria into N^2 criteria 
     1502     zN2_c = grav * rho_c * r1_rho0 ! convert density criteria into N^2 criteria 
    15031503     ! 
    15041504     hbl(:,:)  = 0._wp              ! here hbl used as a dummy variable, integrating vertically N^2 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/ZDF/zdfric.F90

    r12377 r12495  
    174174         ! 
    175175         DO_2D_00_00 
    176             zustar = SQRT( taum(ji,jj) * r1_rau0 ) 
     176            zustar = SQRT( taum(ji,jj) * r1_rho0 ) 
    177177            zhek   = rn_ekmfc * zustar / ( ABS( ff_t(ji,jj) ) + rsmall )   ! Ekman depth 
    178178            zh_ekm(ji,jj) = MAX(  rn_mldmin , MIN( zhek , rn_mldmax )  )   ! set allowed range 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/ZDF/zdftke.F90

    r12377 r12495  
    206206      !!-------------------------------------------------------------------- 
    207207      ! 
    208       zbbrau = rn_ebb / rau0       ! Local constant initialisation 
    209       zfact1 = -.5_wp * rdt  
    210       zfact2 = 1.5_wp * rdt * rn_ediss 
     208      zbbrau = rn_ebb / rho0       ! Local constant initialisation 
     209      zfact1 = -.5_wp * rn_Dt  
     210      zfact2 = 1.5_wp * rn_Dt * rn_ediss 
    211211      zfact3 = 0.5_wp       * rn_ediss 
    212212      ! 
     
    228228      !                     !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    229229      ! 
    230       !   en(bot)   = (ebb0/rau0)*0.5*sqrt(u_botfr^2+v_botfr^2) (min value rn_emin) 
     230      !   en(bot)   = (ebb0/rho0)*0.5*sqrt(u_botfr^2+v_botfr^2) (min value rn_emin) 
    231231      ! where ebb0 does not includes surface wave enhancement (i.e. ebb0=3.75) 
    232232      ! Note that stress averaged is done using an wet-only calculation of u and v at t-point like in zdfsh2 
     
    237237            zmsku = ( 2. - umask(ji-1,jj,mbkt(ji,jj)) * umask(ji,jj,mbkt(ji,jj)) ) 
    238238            zmskv = ( 2. - vmask(ji,jj-1,mbkt(ji,jj)) * vmask(ji,jj,mbkt(ji,jj)) ) 
    239             !                       ! where 0.001875 = (rn_ebb0/rau0) * 0.5 = 3.75*0.5/1000. (CAUTION CdU<0) 
     239            !                       ! where 0.001875 = (rn_ebb0/rho0) * 0.5 = 3.75*0.5/1000. (CAUTION CdU<0) 
    240240            zebot = - 0.001875_wp * rCdU_bot(ji,jj) * SQRT(  ( zmsku*( uu(ji,jj,mbkt(ji,jj),Kbb)+uu(ji-1,jj,mbkt(ji,jj),Kbb) ) )**2  & 
    241241               &                                           + ( zmskv*( vv(ji,jj,mbkt(ji,jj),Kbb)+vv(ji,jj-1,mbkt(ji,jj),Kbb) ) )**2  ) 
     
    246246               zmsku = ( 2. - umask(ji-1,jj,mikt(ji,jj)) * umask(ji,jj,mikt(ji,jj)) ) 
    247247               zmskv = ( 2. - vmask(ji,jj-1,mikt(ji,jj)) * vmask(ji,jj,mikt(ji,jj)) ) 
    248                !                             ! where 0.001875 = (rn_ebb0/rau0) * 0.5 = 3.75*0.5/1000.  (CAUTION CdU<0) 
     248               !                             ! where 0.001875 = (rn_ebb0/rho0) * 0.5 = 3.75*0.5/1000.  (CAUTION CdU<0) 
    249249               zetop = - 0.001875_wp * rCdU_top(ji,jj) * SQRT(  ( zmsku*( uu(ji,jj,mikt(ji,jj),Kbb)+uu(ji-1,jj,mikt(ji,jj),Kbb) ) )**2  & 
    250250                  &                                           + ( zmskv*( vv(ji,jj,mikt(ji,jj),Kbb)+vv(ji,jj-1,mikt(ji,jj),Kbb) ) )**2  ) 
     
    288288                  zwlc = rn_lc * SIN( rpi * gdepw(ji,jj,jk,Kmm) / zhlc(ji,jj) )   ! warning: optimization: zus^3 is in zfr_i 
    289289                  !                                           ! TKE Langmuir circulation source term 
    290                   en(ji,jj,jk) = en(ji,jj,jk) + rdt * zfr_i(ji,jj) * ( zwlc * zwlc * zwlc ) / zhlc(ji,jj) 
     290                  en(ji,jj,jk) = en(ji,jj,jk) + rn_Dt * zfr_i(ji,jj) * ( zwlc * zwlc * zwlc ) / zhlc(ji,jj) 
    291291               ENDIF 
    292292            ENDIF 
     
    325325         ! 
    326326         !                                   ! right hand side in en 
    327          en(ji,jj,jk) = en(ji,jj,jk) + rdt * (  p_sh2(ji,jj,jk)                          &   ! shear 
     327         en(ji,jj,jk) = en(ji,jj,jk) + rn_Dt * (  p_sh2(ji,jj,jk)                        &   ! shear 
    328328            &                                 - p_avt(ji,jj,jk) * rn2(ji,jj,jk)          &   ! stratification 
    329329            &                                 + zfact3 * dissl(ji,jj,jk) * en(ji,jj,jk)  &   ! dissipation 
     
    439439      zmxld(:,:,:)  = rmxl_min 
    440440      ! 
    441       IF( ln_mxl0 ) THEN            ! surface mixing length = F(stress) : l=vkarmn*2.e5*taum/(rau0*g) 
    442          zraug = vkarmn * 2.e5_wp / ( rau0 * grav ) 
     441      IF( ln_mxl0 ) THEN            ! surface mixing length = F(stress) : l=vkarmn*2.e5*taum/(rho0*g) 
     442         zraug = vkarmn * 2.e5_wp / ( rho0 * grav ) 
    443443         DO_2D_00_00 
    444444            zmxlm(ji,jj,1) = MAX( rn_mxl0, zraug * taum(ji,jj) * tmask(ji,jj,1) ) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/nemogcm.F90

    r12377 r12495  
    160160      !                            !==   time stepping   ==! 
    161161      !                            !-----------------------! 
     162      ! 
     163      !                                               !== set the model time-step  ==! 
     164      ! 
    162165      istp = nit000 
    163166      ! 
     
    479482 
    480483      !                                      ! Icebergs 
    481                            CALL icb_init( rdt, nit000)   ! initialise icebergs instance 
     484                           CALL icb_init( rn_Dt, nit000)   ! initialise icebergs instance 
    482485 
    483486                                                ! ice shelf 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/oce.F90

    r12377 r12495  
    2828   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)     ::   rn2b ,  rn2    !: brunt-vaisala frequency**2     [s-2] 
    2929   ! 
    30    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   rhd    !: in situ density anomalie rhd=(rho-rau0)/rau0  [no units] 
     30   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   rhd    !: in situ density anomalie rhd=(rho-rho0)/rho0  [no units] 
    3131   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   rhop   !: potential volumic mass                           [kg/m3] 
    3232   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   Cu_adv                   !: vertical Courant number (adaptive-implicit) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/step.F90

    r12377 r12495  
    102102      ! 
    103103      !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
     104      ! model timestep 
     105      !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
     106      ! 
     107      IF( l_1st_euler ) THEN   
     108         ! start or restart with Euler 1st time-step 
     109         rDt =  rn_Dt    
     110         r1_Dt = 1._wp / rDt 
     111      ENDIF 
     112      ! 
     113      !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    104114      ! update I/O and calendar  
    105115      !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
     
    335345#endif 
    336346      ! 
     347      IF( l_1st_euler ) THEN         ! recover Leap-frog timestep 
     348         rDt = 2._wp * rn_Dt    
     349         r1_Dt = 1._wp / rDt 
     350         l_1st_euler = .FALSE.       
     351      ENDIF 
     352      ! 
    337353      IF( ln_timing )   CALL timing_stop('stp') 
    338354      ! 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OCE/timing.F90

    r11536 r12495  
    390390            WRITE(numtime,'(A28,F11.6,A2, F4.1,A3,A25,I8)') 'Waiting  global time : ',timing_glob(4*ji-1)   & 
    391391               &                                                         , ' (',      zperc,' %)',   ' on MPI rank : ', ji 
    392             zsypd = rn_rdt * REAL(nitend-nit000-1, wp) / (timing_glob(4*ji) * 365.) 
     392            zsypd = rn_Dt * REAL(nitend-nit000-1, wp) / (timing_glob(4*ji) * 365.) 
    393393            WRITE(numtime,'(A28,F11.6,A7,F10.3,A2,A15,I8)') 'Total           time : ',timing_glob(4*ji  )   & 
    394394               &                                                         , ' (SYPD: ', zsypd, ')',   ' on MPI rank : ', ji 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/OFF/dtadyn.F90

    r12377 r12495  
    546546      ENDIF 
    547547 
    548       ssh(:,:,Kmm) = ssh(:,:,Kmm) + atfp * ( ssh(:,:,Kbb) - 2 * ssh(:,:,Kmm) + ssh(:,:,Kaa))   
     548      ssh(:,:,Kmm) = ssh(:,:,Kmm) + rn_atfp * ( ssh(:,:,Kbb) - 2 * ssh(:,:,Kmm) + ssh(:,:,Kaa))   
    549549 
    550550      !! Do we also need to time filter e3t?? 
     
    622622      !!---------------------------------------------------------------------- 
    623623      ! 
    624       z2dt = 2._wp * rdt 
     624      z2dt = 2._wp * rn_Dt 
    625625      ! 
    626626      zhdiv(:,:) = 0._wp 
     
    629629      END DO 
    630630      !                                                ! Sea surface  elevation time-stepping 
    631       pssha(:,:) = ( psshb(:,:) - z2dt * ( r1_rau0 * pemp(:,:)  + zhdiv(:,:) ) ) * ssmask(:,:) 
     631      pssha(:,:) = ( psshb(:,:) - z2dt * ( r1_rho0 * pemp(:,:)  + zhdiv(:,:) ) ) * ssmask(:,:) 
    632632      !                                                 !  
    633633      !                                                 ! After acale factors at t-points ( z_star coordinate ) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/SAS/diawri.F90

    r12377 r12495  
    174174      ENDIF 
    175175#if defined key_diainstant 
    176       zsto = nn_write * rdt 
     176      zsto = nn_write * rn_Dt 
    177177      clop = "inst("//TRIM(clop)//")" 
    178178#else 
    179       zsto=rdt 
     179      zsto=rn_Dt 
    180180      clop = "ave("//TRIM(clop)//")" 
    181181#endif 
    182       zout = nn_write * rdt 
    183       zmax = ( nitend - nit000 + 1 ) * rdt 
     182      zout = nn_write * rn_Dt 
     183      zmax = ( nitend - nit000 + 1 ) * rn_Dt 
    184184 
    185185      ! Define indices of the horizontal output zoom and vertical limit storage 
     
    202202 
    203203         ! Compute julian date from starting date of the run 
    204          CALL ymds2ju( nyear, nmonth, nday, rdt, zjulian ) 
     204         CALL ymds2ju( nyear, nmonth, nday, rn_Dt, zjulian ) 
    205205         zjulian = zjulian - adatrj   !   set calendar origin to the beginning of the experiment 
    206206         IF(lwp)WRITE(numout,*) 
     
    224224         CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,           &  ! Horizontal grid: glamt and gphit 
    225225            &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,       & 
    226             &          nit000-1, zjulian, rdt, nh_T, nid_T, domain_id=nidom, snc4chunks=snc4set ) 
     226            &          nit000-1, zjulian, rn_Dt, nh_T, nid_T, domain_id=nidom, snc4chunks=snc4set ) 
    227227         CALL histvert( nid_T, "deptht", "Vertical T levels",      &  ! Vertical grid: gdept 
    228228            &           "m", ipk, gdept_1d, nz_T, "down" ) 
     
    236236         CALL histbeg( clhstnam, jpi, glamu, jpj, gphiu,           &  ! Horizontal grid: glamu and gphiu 
    237237            &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,       & 
    238             &          nit000-1, zjulian, rdt, nh_U, nid_U, domain_id=nidom, snc4chunks=snc4set ) 
     238            &          nit000-1, zjulian, rn_Dt, nh_U, nid_U, domain_id=nidom, snc4chunks=snc4set ) 
    239239         CALL histvert( nid_U, "depthu", "Vertical U levels",      &  ! Vertical grid: gdept 
    240240            &           "m", ipk, gdept_1d, nz_U, "down" ) 
     
    248248         CALL histbeg( clhstnam, jpi, glamv, jpj, gphiv,           &  ! Horizontal grid: glamv and gphiv 
    249249            &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,       & 
    250             &          nit000-1, zjulian, rdt, nh_V, nid_V, domain_id=nidom, snc4chunks=snc4set ) 
     250            &          nit000-1, zjulian, rn_Dt, nh_V, nid_V, domain_id=nidom, snc4chunks=snc4set ) 
    251251         CALL histvert( nid_V, "depthv", "Vertical V levels",      &  ! Vertical grid : gdept 
    252252            &          "m", ipk, gdept_1d, nz_V, "down" ) 
     
    261261            CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,           &  ! Horizontal grid: glamt and gphit 
    262262               &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,       & 
    263                &          nit000-1, zjulian, rdt, nh_A, nid_A, domain_id=nidom, snc4chunks=snc4set ) 
     263               &          nit000-1, zjulian, rn_Dt, nh_A, nid_A, domain_id=nidom, snc4chunks=snc4set ) 
    264264            CALL histvert( nid_A, "ght_abl", "Vertical T levels",      &  ! Vertical grid: gdept 
    265265               &           "m", ipka, ght_abl(2:jpka), nz_A, "up" ) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/SAS/nemogcm.F90

    r12377 r12495  
    378378                           CALL bdy_init 
    379379      ! ==> 
    380                            CALL icb_init( rdt, nit000)   ! initialise icebergs instance 
     380                           CALL icb_init( rn_Dt, nit000)   ! initialise icebergs instance 
    381381      ! 
    382382      IF(lwp) WRITE(numout,cform_aaa)           ! Flag AAAAAAA 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/C14/trcatm_c14.F90

    r12377 r12495  
    223223      IF(kc14typ >= 1) THEN  ! Transient C14 & CO2 
    224224      ! 
    225          tyrc14_now = tyrc14_now + ( rdt / ( rday * nyear_len(1)) )    !  current time step in yr relative to tyrc14_beg 
     225         tyrc14_now = tyrc14_now + ( rn_Dt / ( rday * nyear_len(1)) )    !  current time step in yr relative to tyrc14_beg 
    226226      ! 
    227227      ! CO2 -------------------------------------------------------- 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/C14/trcsms_c14.F90

    r12377 r12495  
    124124             
    125125      ! cumulation of air-to-sea flux at each time step 
    126       qint_c14(:,:) = qint_c14(:,:) + qtr_c14(:,:) * rdttrc 
     126      qint_c14(:,:) = qint_c14(:,:) + qtr_c14(:,:) * rn_Dt 
    127127      ! 
    128128      ! Add the surface flux to the trend of jp_c14 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/CFC/trcsms_cfc.F90

    r12377 r12495  
    166166 
    167167            ! cumulation of surface flux at each time step 
    168             qint_cfc(ji,jj,jl) = qint_cfc(ji,jj,jl) + qtr_cfc(ji,jj,jl) * rdt 
     168            qint_cfc(ji,jj,jl) = qint_cfc(ji,jj,jl) + qtr_cfc(ji,jj,jl) * rn_Dt 
    169169            !                                               !----------------! 
    170170         END_2D 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/PISCES/P2Z/p2zexp.F90

    r12377 r12495  
    9898         zwork = vsed * tr(ji,jj,ikt,jpdet,Kmm) 
    9999         zsedpoca(ji,jj) = ( zwork + dminl(ji,jj) * xksi(ji,jj)   & 
    100             &           - sedlam * sedpocn(ji,jj) - sedlostpoc * sedpocn(ji,jj) ) * rdt 
     100            &           - sedlam * sedpocn(ji,jj) - sedlostpoc * sedpocn(ji,jj) ) * rn_Dt 
    101101         zgeolpoc = zgeolpoc + sedlostpoc * sedpocn(ji,jj) * e1e2t(ji,jj) 
    102102      END_2D 
     
    114114      ! Time filter and swap of arrays 
    115115      ! ------------------------------ 
    116       IF( neuler == 0 .AND. kt == nittrc000 ) THEN        ! Euler time-stepping at first time-step 
    117         !                                             ! (only swap) 
     116      IF( l_1st_euler ) THEN        ! Euler time-stepping at first time-step 
     117        !                           ! (only swap) 
    118118        sedpocn(:,:) = zsedpoca(:,:) 
    119119        !                                               
     
    122122        DO_2D_11_11 
    123123           zsedpocd = zsedpoca(ji,jj) - 2. * sedpocn(ji,jj) + sedpocb(ji,jj)      ! time laplacian on tracers 
    124            sedpocb(ji,jj) = sedpocn(ji,jj) + atfp * zsedpocd                     ! sedpocb <-- filtered sedpocn 
     124           sedpocb(ji,jj) = sedpocn(ji,jj) + rn_atfp * zsedpocd                     ! sedpocb <-- filtered sedpocn 
    125125           sedpocn(ji,jj) = zsedpoca(ji,jj)                                       ! sedpocn <-- sedpoca 
    126126        END_2D 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/PISCES/P4Z/p4zsms.F90

    r12377 r12495  
    9090      IF( ln_pisdmp .AND. MOD( kt - 1, nn_pisdmp ) == 0 )   CALL p4z_dmp( kt, Kbb, Kmm )      ! Relaxation of some tracers 
    9191      ! 
    92       rfact = r2dttrc 
     92      rfact = rDt_trc 
    9393      ! 
    9494      ! trends computation initialisation 
     
    106106         xfact = 1.e+3 * rfact2r 
    107107         IF(lwp) WRITE(numout,*)  
    108          IF(lwp) WRITE(numout,*) '    Passive Tracer  time step    rfact  = ', rfact, ' rdt = ', rdt 
     108         IF(lwp) WRITE(numout,*) '    Passive Tracer  time step    rfact  = ', rfact, ' rn_Dt = ', rn_Dt 
    109109         IF(lwp) write(numout,*) '    PISCES  Biology time step    rfact2 = ', rfact2 
    110110         IF(lwp) WRITE(numout,*) 
    111111      ENDIF 
    112112 
    113       IF( ( neuler == 0 .AND. kt == nittrc000 ) .OR. ln_top_euler ) THEN 
     113      IF( l_1st_euler .OR. ln_top_euler ) THEN 
    114114         DO jn = jp_pcs0, jp_pcs1              !   SMS on tracer without Asselin time-filter 
    115115            tr(:,:,:,jn,Kbb) = tr(:,:,:,jn,Kmm) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/PISCES/SED/oce_sed.F90

    r12377 r12495  
    1818   USE dom_oce , ONLY :   mbkt      =>   mbkt           !: vertical index of the bottom last T- ocean level 
    1919   USE dom_oce , ONLY :   tmask     =>   tmask          !: land/ocean mask at t-points 
    20    USE dom_oce , ONLY :   rdt       =>   rdt            !: time step for the dynamics 
     20   USE dom_oce , ONLY :   rn_Dt     =>   rn_Dt          !: time step for the dynamics 
    2121   USE dom_oce , ONLY :   nyear     =>   nyear          !: Current year 
    2222   USE dom_oce , ONLY :   ndastp    =>   ndastp         !: time step date in year/month/day aammjj 
     
    5050   USE p4zche, ONLY     : sio3eq    =>   sio3eq          !: Chemical constants   
    5151   USE p4zbc, ONLY     : dust      =>   dust 
    52    USE trc  , ONLY : r2dttrc   =>   r2dttrc 
     52   USE trc  , ONLY : rDt_trc   =>   rDt_trc 
    5353 
    5454END MODULE oce_sed 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/PISCES/SED/seddta.F90

    r12377 r12495  
    7575      IF( kt == nitsed000 ) THEN 
    7676         IF (lwp) WRITE(numsed,*) ' sed_dta : Sediment fields' 
    77          dtsed = r2dttrc 
     77         dtsed = rDt_trc 
    7878         rsecday = 60.* 60. * 24. 
    7979!         conv2   = 1.0e+3 / ( 1.0e+4 * rsecday * 30. ) 
     
    103103         DO_2D_11_11 
    104104            ikt = mbkt(ji,jj) 
    105             zdep = e3t(ji,jj,ikt,Kmm) / r2dttrc 
     105            zdep = e3t(ji,jj,ikt,Kmm) / rDt_trc 
    106106            zwsbio4(ji,jj) = MIN( 0.99 * zdep, wsbio4(ji,jj,ikt) / rday ) 
    107107            zwsbio3(ji,jj) = MIN( 0.99 * zdep, wsbio3(ji,jj,ikt) / rday ) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/PISCES/SED/sedini.F90

    r12377 r12495  
    488488 
    489489      jpksedm1  = jpksed - 1 
    490       dtsed = r2dttrc 
     490      dtsed = rDt_trc 
    491491 
    492492      READ  ( numnamsed_ref, nam_trased, IOSTAT = ios, ERR = 905) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/PISCES/SED/sedrst.F90

    r12377 r12495  
    330330      !!       In both those options, the  exact duration of the experiment 
    331331      !!       since the beginning (cumulated duration of all previous restart runs) 
    332       !!       is not stored in the restart and is assumed to be (nittrc000-1)*rdt. 
     332      !!       is not stored in the restart and is assumed to be (nittrc000-1)*rn_Dt. 
    333333      !!       This is valid is the time step has remained constant. 
    334334      !! 
     
    381381             ELSE 
    382382               ndastp = ndate0 - 1     ! ndate0 read in the namelist in dom_nam 
    383                adatrj = ( REAL( nittrc000-1, wp ) * rdt ) / rday 
     383               adatrj = ( REAL( nittrc000-1, wp ) * rn_Dt ) / rday 
    384384               ! note this is wrong if time step has changed during run 
    385385            ENDIF 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/PISCES/SED/sedstp.F90

    r12377 r12495  
    5555      IF(ln_sediment_offline)   CALL trc_dmp_sed  ( kt, Kbb, Kmm, Krhs ) 
    5656 
    57       dtsed  = r2dttrc 
     57      dtsed  = rDt_trc 
    5858!      dtsed2 = dtsed 
    5959      IF (kt /= nitsed000) THEN 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/PISCES/SED/sedwri.F90

    r10222 r12495  
    9494         DO ji = 1, jpoce 
    9595            zflx(ji,jw) = ( pwcp(ji,1,jw) - pwcp_dta(ji,jw) ) & 
    96                &         * 1.e3 / 1.e2 * dzkbot(ji) / r2dttrc 
     96               &         * 1.e3 / 1.e2 * dzkbot(ji) / rDt_trc 
    9797         ENDDO 
    9898      ENDDO 
     
    100100      ! Calculation of accumulation rate per dt 
    101101      DO js = 1, jpsol 
    102          zrate =  1.0 / ( denssol * por1(jpksed) ) / r2dttrc 
     102         zrate =  1.0 / ( denssol * por1(jpksed) ) / rDt_trc 
    103103         DO ji = 1, jpoce 
    104104            zflx(ji,jpwatp1) = zflx(ji,jpwatp1) + ( tosed(ji,js) - fromsed(ji,js) ) * zrate 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/TRP/trcadv.F90

    r12377 r12495  
    125125         CALL tra_adv_cen( kt, nittrc000,'TRC',          zuu, zvv, zww,      Kmm, ptr, jptra, Krhs, nn_cen_h, nn_cen_v ) 
    126126      CASE ( np_FCT )                                 ! FCT      : 2nd / 4th order 
    127          CALL tra_adv_fct( kt, nittrc000,'TRC', r2dttrc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, nn_fct_h, nn_fct_v ) 
     127         CALL tra_adv_fct( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, nn_fct_h, nn_fct_v ) 
    128128      CASE ( np_MUS )                                 ! MUSCL 
    129          CALL tra_adv_mus( kt, nittrc000,'TRC', r2dttrc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, ln_mus_ups         )  
     129         CALL tra_adv_mus( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, ln_mus_ups         )  
    130130      CASE ( np_UBS )                                 ! UBS 
    131          CALL tra_adv_ubs( kt, nittrc000,'TRC', r2dttrc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, nn_ubs_v           ) 
     131         CALL tra_adv_ubs( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, nn_ubs_v           ) 
    132132      CASE ( np_QCK )                                 ! QUICKEST 
    133          CALL tra_adv_qck( kt, nittrc000,'TRC', r2dttrc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs                     ) 
     133         CALL tra_adv_qck( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs                     ) 
    134134      ! 
    135135      END SELECT 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/TRP/trcatf.F90

    r12377 r12495  
    7171      !!      the divergence of two consecutive time-steps and tr arrays 
    7272      !!      to prepare the next time_step: 
    73       !!         (tr(Kmm)) = (tr(Kmm)) + atfp [ (tr(Kbb)) + (tr(Kaa)) - 2 (tr(Kmm)) ] 
     73      !!         (tr(Kmm)) = (tr(Kmm)) + rn_atfp [ (tr(Kbb)) + (tr(Kaa)) - 2 (tr(Kmm)) ] 
    7474      !! 
    7575      !! 
     
    111111 
    112112         ! total trend for the non-time-filtered variables.  
    113          zfact = 1.0 / rdttrc 
     113         zfact = 1.0 / rn_Dt 
    114114         ! G Nurser 23 Mar 2017. Recalculate trend as Delta(e3t*T)/e3tn; e3tn cancel from ts(Kmm) terms 
    115115         IF( ln_linssh ) THEN       ! linear sea surface height only 
     
    139139      ENDIF 
    140140      !                                ! Leap-Frog + Asselin filter time stepping 
    141       IF( (neuler == 0 .AND. kt == nittrc000) .OR. ln_top_euler ) THEN    ! Euler time-stepping  
     141      IF( l_1st_euler .OR. ln_top_euler ) THEN    ! Euler time-stepping  
    142142         ! 
    143143         IF (l_trdtrc .AND. .NOT. ln_linssh ) THEN   ! Zero Asselin filter contribution must be explicitly written out since for vvl 
     
    152152         IF( .NOT. l_offline ) THEN ! Leap-Frog + Asselin filter time stepping 
    153153            IF( ln_linssh ) THEN   ;   CALL tra_atf_fix( kt, Kbb, Kmm, Kaa, nittrc000,         'TRC', ptr, jptra )                     !     linear ssh 
    154             ELSE                   ;   CALL tra_atf_vvl( kt, Kbb, Kmm, Kaa, nittrc000, rdttrc, 'TRC', ptr, sbc_trc, sbc_trc_b, jptra ) ! non-linear ssh 
     154            ELSE                   ;   CALL tra_atf_vvl( kt, Kbb, Kmm, Kaa, nittrc000, rn_Dt, 'TRC', ptr, sbc_trc, sbc_trc_b, jptra ) ! non-linear ssh 
    155155            ENDIF 
    156156         ELSE 
     
    164164         DO jn = 1, jptra 
    165165            DO jk = 1, jpkm1 
    166                zfact = 1._wp / r2dttrc   
     166               zfact = 1._wp / rDt_trc   
    167167               ztrdt(:,:,jk,jn) = ( ptr(:,:,jk,jn,Kbb) - ztrdt(:,:,jk,jn) ) * zfact  
    168168            END DO 
     
    200200      !!                  /( e3t(:,:,:,Kmm)    + rbcp*[ e3t(:,:,:,Kbb)    - 2 e3t(:,:,:,Kmm)    + e3t(:,:,:,Kaa)    ] )    
    201201      !!             ztm = 0                                                       otherwise 
    202       !!             tb  = ( e3t_n*tn + atfp*[ e3t_b*tb - 2 e3t_n*tn + e3t_a*ta ] ) 
    203       !!                  /( e3t(:,:,:,Kmm)    + atfp*[ e3t(:,:,:,Kbb)    - 2 e3t(:,:,:,Kmm)    + e3t(:,:,:,Kaa)    ] ) 
     202      !!             tb  = ( e3t_n*tn + rn_atfp*[ e3t_b*tb - 2 e3t_n*tn + e3t_a*ta ] ) 
     203      !!                  /( e3t(:,:,:,Kmm)    + rn_atfp*[ e3t(:,:,:,Kbb)    - 2 e3t(:,:,:,Kmm)    + e3t(:,:,:,Kaa)    ] ) 
    204204      !!             tn  = ta  
    205205      !!             ta  = zt        (NB: reset to 0 after eos_bn2 call) 
     
    222222         IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 
    223223         IF( .NOT. ln_linssh ) THEN 
    224             rfact1 = atfp * rdttrc 
    225             rfact2 = rfact1 / rau0 
     224            rfact1 = rn_atfp * rn_Dt 
     225            rfact2 = rfact1 / rho0 
    226226         ENDIF 
    227227        !   
     
    241241            ztc_d  = ztc_a  - 2. * ztc_n  + ztc_b 
    242242            ! 
    243             ze3t_f = ze3t_n + atfp * ze3t_d 
    244             ztc_f  = ztc_n  + atfp * ztc_d 
     243            ze3t_f = ze3t_n + rn_atfp * ze3t_d 
     244            ztc_f  = ztc_n  + rn_atfp * ztc_d 
    245245            ! 
    246246            IF( .NOT. ln_linssh .AND. jk == mikt(ji,jj) ) THEN           ! first level  
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/TRP/trcrad.F90

    r12377 r12495  
    147147     ! 
    148148     IF( l_trdtrc )   ALLOCATE( ztrtrd(jpi,jpj,jpk) ) 
    149      zs2rdt = 1. / ( 2. * rdt ) 
     149     zs2rdt = 1. / ( 2. * rn_Dt ) 
    150150     ! 
    151151     DO jt = 1,2  ! Loop over time indices since exactly the same fix is applied to "now" and "after" fields 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/TRP/trcsbc.F90

    r12377 r12495  
    121121         DO jn = 1, jptra 
    122122            DO_2D_01_00 
    123                sbc_trc(ji,jj,jn) = zsfx(ji,jj) * r1_rau0 * ptr(ji,jj,1,jn,Kmm) 
     123               sbc_trc(ji,jj,jn) = zsfx(ji,jj) * r1_rho0 * ptr(ji,jj,1,jn,Kmm) 
    124124            END_2D 
    125125         END DO 
     
    129129         DO jn = 1, jptra 
    130130            DO_2D_01_00 
    131                sbc_trc(ji,jj,jn) = ( zsfx(ji,jj) + fmmflx(ji,jj) ) * r1_rau0 * ptr(ji,jj,1,jn,Kmm) 
     131               sbc_trc(ji,jj,jn) = ( zsfx(ji,jj) + fmmflx(ji,jj) ) * r1_rho0 * ptr(ji,jj,1,jn,Kmm) 
    132132            END_2D 
    133133         END DO 
     
    145145               ztfx  = zftra                        ! net tracer flux 
    146146               ! 
    147                zdtra = r1_rau0 * ( ztfx + ( zsfx(ji,jj) + fmmflx(ji,jj) ) * ptr(ji,jj,1,jn,Kmm) )  
     147               zdtra = r1_rho0 * ( ztfx + ( zsfx(ji,jj) + fmmflx(ji,jj) ) * ptr(ji,jj,1,jn,Kmm) )  
    148148               IF ( zdtra < 0. ) THEN 
    149                   zdtra  = MAX(zdtra, -ptr(ji,jj,1,jn,Kmm) * e3t(ji,jj,1,Kmm) / r2dttrc )   ! avoid negative concentrations to arise 
     149                  zdtra  = MAX(zdtra, -ptr(ji,jj,1,jn,Kmm) * e3t(ji,jj,1,Kmm) / rDt_trc )   ! avoid negative concentrations to arise 
    150150               ENDIF 
    151151               sbc_trc(ji,jj,jn) =  zdtra  
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/TRP/trczdf.F90

    r12377 r12495  
    5656      IF( l_trdtrc )   ztrtrd(:,:,:,:)  = ptr(:,:,:,:,Krhs) 
    5757      ! 
    58       CALL tra_zdf_imp( kt, nittrc000, 'TRC', r2dttrc, Kbb, Kmm, Krhs, ptr, Kaa, jptra )    !   implicit scheme           
     58      CALL tra_zdf_imp( kt, nittrc000, 'TRC', rDt_trc, Kbb, Kmm, Krhs, ptr, Kaa, jptra )    !   implicit scheme           
    5959      ! 
    6060      IF( l_trdtrc )   THEN                      ! save the vertical diffusive trends for further diagnostics 
    6161         DO jn = 1, jptra 
    6262            DO jk = 1, jpkm1 
    63                ztrtrd(:,:,jk,jn) = ( ( ptr(:,:,jk,jn,Kaa) - ptr(:,:,jk,jn,Kbb) ) / r2dttrc ) - ztrtrd(:,:,jk,jn) 
     63               ztrtrd(:,:,jk,jn) = ( ( ptr(:,:,jk,jn,Kaa) - ptr(:,:,jk,jn,Kbb) ) / rDt_trc ) - ztrtrd(:,:,jk,jn) 
    6464            END DO 
    6565            CALL trd_tra( kt, Kmm, Krhs, 'TRC', jn, jptra_zdf, ztrtrd(:,:,:,jn) ) 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/TRP/trdmxl_trc.F90

    r12377 r12495  
    401401         DO jn = 1, jptra 
    402402            IF( ln_trdtrc(jn) ) THEN 
    403                !-- Compute total trends    (use rdttrc instead of rdt ???) 
     403               !-- Compute total trends  
    404404               IF ( ln_trcadv_muscl .OR. ln_trcadv_muscl2 ) THEN  ! EULER-FORWARD schemes 
    405                   ztmltot(:,:,jn) =  ( tml_trc(:,:,jn) - tmlbn_trc(:,:,jn) )/rdt 
     405                  ztmltot(:,:,jn) =  ( tml_trc(:,:,jn) - tmlbn_trc(:,:,jn) )/rn_Dt 
    406406               ELSE                                                                     ! LEAP-FROG schemes 
    407                   ztmltot(:,:,jn) =  ( tml_trc(:,:,jn) - tmlbn_trc(:,:,jn) + tmlb_trc(:,:,jn) - tmlbb_trc(:,:,jn))/(2.*rdt) 
     407                  ztmltot(:,:,jn) =  ( tml_trc(:,:,jn) - tmlbn_trc(:,:,jn) + tmlb_trc(:,:,jn) - tmlbb_trc(:,:,jn))/(2.*rn_Dt) 
    408408               ENDIF 
    409409                
     
    439439            IF( ln_trdtrc(jn) ) THEN 
    440440               tml_sum_trc(:,:,jn) = tmlbn_trc(:,:,jn) + 2 * ( tml_sum_trc(:,:,jn) - tml_trc(:,:,jn) ) + tml_trc(:,:,jn) 
    441                ztmltot2   (:,:,jn) = ( tml_sum_trc(:,:,jn) - tml_sumb_trc(:,:,jn) ) /  ( 2.*rdt )    ! now tracer unit is /sec 
     441               ztmltot2   (:,:,jn) = ( tml_sum_trc(:,:,jn) - tml_sumb_trc(:,:,jn) ) /  ( 2.*rn_Dt )    ! now tracer unit is /sec 
    442442            ENDIF 
    443443         END DO 
     
    852852         CALL ctl_stop( 'STOP', 'trd_mxl_trc : this was never checked. Comment this line to proceed...' ) 
    853853      ENDIF 
    854       zsto = nn_trd_trc * rdt 
     854      zsto = nn_trd_trc * rn_Dt 
    855855      clop = "inst("//TRIM(clop)//")" 
    856856#  else 
    857857      IF( ln_trdmxl_trc_instant ) THEN 
    858          zsto = rdt                                               ! inst. diags : we use IOIPSL time averaging 
     858         zsto = rn_Dt                                               ! inst. diags : we use IOIPSL time averaging 
    859859      ELSE 
    860          zsto = nn_trd_trc * rdt                                    ! mean  diags : we DO NOT use any IOIPSL time averaging 
     860         zsto = nn_trd_trc * rn_Dt                                    ! mean  diags : we DO NOT use any IOIPSL time averaging 
    861861      ENDIF 
    862862      clop = "ave("//TRIM(clop)//")" 
    863863#  endif 
    864       zout = nn_trd_trc * rdt 
     864      zout = nn_trd_trc * rn_Dt 
    865865      iiter = nittrc000 - 1 
    866866 
     
    869869      ! II.2 Compute julian date from starting date of the run 
    870870      ! ------------------------------------------------------ 
    871       CALL ymds2ju( nyear, nmonth, nday, rdt, zjulian ) 
     871      CALL ymds2ju( nyear, nmonth, nday, rn_Dt, zjulian ) 
    872872      zjulian = zjulian - adatrj   !   set calendar origin to the beginning of the experiment 
    873873      IF(lwp) WRITE(numout,*)' '   
     
    901901            CALL dia_nam( clhstnam, nn_trd_trc, csuff ) 
    902902            CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,                                            & 
    903                &        1, jpi, 1, jpj, iiter, zjulian, rdt, nh_t(jn), nidtrd(jn), domain_id=nidom, snc4chunks=snc4set ) 
     903               &        1, jpi, 1, jpj, iiter, zjulian, rn_Dt, nh_t(jn), nidtrd(jn), domain_id=nidom, snc4chunks=snc4set ) 
    904904       
    905905            !-- Define the ML depth variable 
     
    938938               CALL histdef(nidtrd(jn), trim(clvar)//trim(ctrd_trc(jl,2)), clmxl//" "//clvar//ctrd_trc(jl,1),                      &  
    939939                 &    cltrcu, jpi, jpj, nh_t(jn), 1  , 1, 1  , -99 , 32, clop, zsto, zout ) ! IOIPSL: time mean 
    940             END DO                                                                         ! if zsto=rdt above 
     940            END DO                                                                         ! if zsto=rn_Dt above 
    941941          
    942942            CALL histdef(nidtrd(jn), trim(clvar)//trim(ctrd_trc(jpmxl_trc_radb,2)), clmxl//" "//clvar//ctrd_trc(jpmxl_trc_radb,1), &  
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/oce_trc.F90

    r12377 r12495  
    3939   USE oce , ONLY :   ts     =>    ts     !: 4D array contaning ( tn, sn ) 
    4040   USE oce , ONLY :   rhop   =>    rhop   !: potential volumic mass (kg m-3)  
    41    USE oce , ONLY :   rhd    =>    rhd    !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units) 
     41   USE oce , ONLY :   rhd    =>    rhd    !: in situ density anomalie rhd=(rho-rho0)/rho0 (no units) 
    4242   USE oce , ONLY :   hdiv   =>    hdiv   !: horizontal divergence (1/s) 
    4343   USE oce , ONLY :   ssh    =>    ssh    !: sea surface height at t-point [m]    
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/trc.F90

    r12377 r12495  
    6161   CHARACTER(len = 80) , PUBLIC ::   cn_trcrst_out      !: suffix of pass. tracer restart name (output) 
    6262   CHARACTER(len = 256), PUBLIC ::   cn_trcrst_outdir   !: restart output directory 
    63    REAL(wp)            , PUBLIC ::   rdttrc             !: passive tracer time step 
    64    REAL(wp)            , PUBLIC ::   r2dttrc            !: = 2*rdttrc except at nit000 (=rdttrc) if neuler=0 
     63   REAL(wp)            , PUBLIC ::   rDt_trc            !: = 2*rn_Dt except at nit000 (=rn_Dt) if l_1st_euler=.true. 
    6564   LOGICAL             , PUBLIC ::   ln_top_euler       !: boolean term for euler integration  
    6665   LOGICAL             , PUBLIC ::   ln_trcdta          !: Read inputs data from files 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/trcbc.F90

    r12377 r12495  
    416416            DO_2D_01_00 
    417417               DO jk = 1, nk_rnf(ji,jj) 
    418                   zrnf = (rnf(ji,jj) + rnf_b(ji,jj)) * 0.5_wp * r1_rau0 / h_rnf(ji,jj) 
     418                  zrnf = (rnf(ji,jj) + rnf_b(ji,jj)) * 0.5_wp * r1_rho0 / h_rnf(ji,jj) 
    419419                  ptr(ji,jj,jk,jn,Krhs) = ptr(ji,jj,jk,jn,Krhs)  + (ptr(ji,jj,jk,jn,Kmm) * zrnf) 
    420420               END DO 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/trcnam.F90

    r12377 r12495  
    7676      ENDIF 
    7777      ! 
    78       rdttrc = rdt                              ! passive tracer time-step       
    79       !  
    8078      IF(lwp) THEN                              ! control print 
    8179        WRITE(numout,*)  
    82         WRITE(numout,*) '   ==>>>   Passive Tracer  time step    rdttrc = rdt = ', rdttrc 
     80        WRITE(numout,*) '   ==>>>   Passive Tracer time step = rn_Dt = ', rn_Dt 
    8381      ENDIF 
    8482      ! 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/trcrst.F90

    r12377 r12495  
    136136      !!---------------------------------------------------------------------- 
    137137      ! 
    138       CALL iom_rstput( kt, nitrst, numrtw, 'rdttrc1', rdttrc )   ! passive tracer time step 
     138      CALL iom_rstput( kt, nitrst, numrtw, 'rdttrc1', rn_Dt )   ! passive tracer time step (= ocean time step) 
    139139      ! prognostic variables  
    140140      ! --------------------  
     
    183183      !!       In both those options, the  exact duration of the experiment 
    184184      !!       since the beginning (cumulated duration of all previous restart runs) 
    185       !!       is not stored in the restart and is assumed to be (nittrc000-1)*rdt. 
     185      !!       is not stored in the restart and is assumed to be (nittrc000-1)*rn_Dt. 
    186186      !!       This is valid is the time step has remained constant. 
    187187      !! 
     
    263263               nminute = ( nn_time0 - nhour * 100 ) 
    264264               IF( nhour*3600+nminute*60-ndt05 .lt. 0 )  ndastp=ndastp-1      ! Start hour is specified in the namelist (default 0) 
    265                adatrj = ( REAL( nit000-1, wp ) * rdt ) / rday 
     265               adatrj = ( REAL( nit000-1, wp ) * rn_Dt ) / rday 
    266266               ! note this is wrong if time step has changed during run 
    267267            ENDIF 
     
    276276            ENDIF 
    277277            ! 
    278             IF( ln_rsttr )  THEN   ;    neuler = 1 
    279             ELSE                   ;    neuler = 0 
     278            IF( ln_rsttr )  THEN   ;    l_1st_euler = .false. 
     279            ELSE                   ;    l_1st_euler = .true. 
    280280            ENDIF 
    281281            ! 
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/TOP/trcstp.F90

    r12377 r12495  
    6464      IF( ln_timing )   CALL timing_start('trc_stp') 
    6565      ! 
    66       IF( ( neuler == 0 .AND. kt == nittrc000 ) .OR. ln_top_euler ) THEN     ! at nittrc000 
    67          r2dttrc =  rdttrc           ! = rdttrc (use or restarting with Euler time stepping) 
     66      IF( l_1st_euler .OR. ln_top_euler ) THEN     ! at nittrc000 
     67         rDt_trc =  rn_Dt           ! = rn_Dt (use or restarting with Euler time stepping) 
    6868      ELSEIF( kt <= nittrc000 + 1 ) THEN                                     ! at nittrc000 or nittrc000+1  
    69          r2dttrc = 2. * rdttrc       ! = 2 rdttrc (leapfrog)  
     69         rDt_trc = 2. * rn_Dt       ! = 2 rn_Dt (leapfrog)  
    7070      ENDIF 
    7171      ! 
     
    177177            nb_rec_per_day = ncpl_qsr_freq 
    178178         ELSE   
    179             rdt_sampl = MAX( 3600., rdttrc ) 
     179            rdt_sampl = MAX( 3600., rn_Dt ) 
    180180            nb_rec_per_day = INT( rday / rdt_sampl ) 
    181181         ENDIF 
     
    196196 
    197197            CALL iom_get( numrtr, 'ktdcy', zkt )   
    198             rsecfst = INT( zkt ) * rdttrc 
     198            rsecfst = INT( zkt ) * rn_Dt 
    199199            IF(lwp) WRITE(numout,*) 'trc_qsr_mean:   qsr_mean read in the restart file at time-step rsecfst =', rsecfst, ' s ' 
    200200            CALL iom_get( numrtr, jpdom_autoglo, 'qsr_mean', qsr_mean )   !  A mean of qsr 
     
    217217         ELSE                                         !* no restart: set from nit000 values 
    218218            IF(lwp) WRITE(numout,*) 'trc_qsr_mean:   qsr_mean set to nit000 values' 
    219             rsecfst  = kt * rdttrc 
     219            rsecfst  = kt * rn_Dt 
    220220            ! 
    221221            qsr_mean(:,:) = qsr(:,:) 
     
    227227      ENDIF 
    228228      ! 
    229       rseclast = kt * rdttrc 
     229      rseclast = kt * rn_Dt 
    230230      ! 
    231231      llnew   = ( rseclast - rsecfst ) .ge.  rdt_sampl    !   new shortwave to store 
Note: See TracChangeset for help on using the changeset viewer.