Changeset 12489 for NEMO/trunk/src


Ignore:
Timestamp:
2020-02-28T16:55:11+01:00 (9 months ago)
Author:
davestorkey
Message:

Preparation for new timestepping scheme #2390.
Main changes:

  1. Initial euler timestep now handled in stp and not in TRA/DYN routines.
  2. Renaming of all timestep parameters. In summary, the namelist parameter is now rn_Dt and the current timestep is rDt (and rDt_ice, rDt_trc etc).
  3. Renaming of a few miscellaneous parameters, eg. atfp → rn_atfp (namelist parameter used everywhere) and rau0 → rho0.

This version gives bit-comparable results to the previous version of the trunk.

Location:
NEMO/trunk/src
Files:
147 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/ABL/abl.F90

    r11305 r12489  
    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/trunk/src/ABL/ablmod.F90

    r12353 r12489  
    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/trunk/src/ABL/par_abl.F90

    r11858 r12489  
    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/trunk/src/ABL/sbcabl.F90

    r12353 r12489  
    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/trunk/src/ICE/ice.F90

    r11627 r12489  
    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/trunk/src/ICE/icecor.F90

    r12377 r12489  
    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/trunk/src/ICE/icectl.F90

    r12377 r12489  
    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/trunk/src/ICE/icedia.F90

    r12377 r12489  
    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/trunk/src/ICE/icedyn_adv.F90

    r12377 r12489  
    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/trunk/src/ICE/icedyn_adv_pra.F90

    r12377 r12489  
    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/trunk/src/ICE/icedyn_adv_umx.F90

    r12377 r12489  
    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/trunk/src/ICE/icedyn_rdgrft.F90

    r12377 r12489  
    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/trunk/src/ICE/icedyn_rhg_evp.F90

    r12377 r12489  
    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/trunk/src/ICE/iceistate.F90

    r12399 r12489  
    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/trunk/src/ICE/icestp.F90

    r12377 r12489  
    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/trunk/src/ICE/icethd.F90

    r12377 r12489  
    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/trunk/src/ICE/icethd_da.F90

    r12377 r12489  
    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/trunk/src/ICE/icethd_dh.F90

    r10786 r12489  
    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/trunk/src/ICE/icethd_do.F90

    r12377 r12489  
    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/trunk/src/ICE/icethd_ent.F90

    r10069 r12489  
    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/trunk/src/ICE/icethd_pnd.F90

    r12377 r12489  
    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/trunk/src/ICE/icethd_sal.F90

    r12377 r12489  
    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/trunk/src/ICE/icethd_zdf_bl99.F90

    r12396 r12489  
    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/trunk/src/ICE/iceupdate.F90

    r12377 r12489  
    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/trunk/src/ICE/icevar.F90

    r12377 r12489  
    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/trunk/src/ICE/icewri.F90

    r12377 r12489  
    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/trunk/src/NST/agrif_oce_sponge.F90

    r12377 r12489  
    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/trunk/src/NST/agrif_oce_update.F90

    r12377 r12489  
    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/trunk/src/NST/agrif_top_sponge.F90

    r12377 r12489  
    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/trunk/src/NST/agrif_top_update.F90

    r12377 r12489  
    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/trunk/src/NST/agrif_user.F90

    r12377 r12489  
    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/trunk/src/OCE/ASM/asminc.F90

    r12377 r12489  
    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/trunk/src/OCE/BDY/bdyice.F90

    r11536 r12489  
    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/trunk/src/OCE/BDY/bdylib.F90

    r12377 r12489  
    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/trunk/src/OCE/BDY/bdytides.F90

    r12377 r12489  
    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/trunk/src/OCE/BDY/bdyvol.F90

    r12377 r12489  
    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/trunk/src/OCE/DIA/dia25h.F90

    r12377 r12489  
    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/trunk/src/OCE/DIA/diaar5.F90

    r12377 r12489  
    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/trunk/src/OCE/DIA/diacfl.F90

    r12377 r12489  
    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/trunk/src/OCE/DIA/diadct.F90

    r12377 r12489  
    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/trunk/src/OCE/DIA/diadetide.F90

    r12377 r12489  
    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/trunk/src/OCE/DIA/diahsb.F90

    r12377 r12489  
    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/trunk/src/OCE/DIA/diahth.F90

    r12377 r12489  
    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/trunk/src/OCE/DIA/dianam.F90

    r10068 r12489  
    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/trunk/src/OCE/DIA/diaptr.F90

    r12377 r12489  
    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/trunk/src/OCE/DIA/diawri.F90

    r12377 r12489  
    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 
     
    432432      clop = "x"         ! no use of the mask value (require less cpu time and otherwise the model crashes) 
    433433#if defined key_diainstant 
    434       zsto = nn_write * rdt 
     434      zsto = nn_write * rn_Dt 
    435435      clop = "inst("//TRIM(clop)//")" 
    436436#else 
    437       zsto=rdt 
     437      zsto=rn_Dt 
    438438      clop = "ave("//TRIM(clop)//")" 
    439439#endif 
    440       zout = nn_write * rdt 
    441       zmax = ( nitend - nit000 + 1 ) * rdt 
     440      zout = nn_write * rn_Dt 
     441      zmax = ( nitend - nit000 + 1 ) * rn_Dt 
    442442 
    443443      ! Define indices of the horizontal output zoom and vertical limit storage 
     
    460460 
    461461         ! Compute julian date from starting date of the run 
    462          CALL ymds2ju( nyear, nmonth, nday, rdt, zjulian ) 
     462         CALL ymds2ju( nyear, nmonth, nday, rn_Dt, zjulian ) 
    463463         zjulian = zjulian - adatrj   !   set calendar origin to the beginning of the experiment 
    464464         IF(lwp)WRITE(numout,*) 
     
    482482         CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,           &  ! Horizontal grid: glamt and gphit 
    483483            &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,       & 
    484             &          nit000-1, zjulian, rdt, nh_T, nid_T, domain_id=nidom, snc4chunks=snc4set ) 
     484            &          nit000-1, zjulian, rn_Dt, nh_T, nid_T, domain_id=nidom, snc4chunks=snc4set ) 
    485485         CALL histvert( nid_T, "deptht", "Vertical T levels",      &  ! Vertical grid: gdept 
    486486            &           "m", ipk, gdept_1d, nz_T, "down" ) 
     
    518518         CALL histbeg( clhstnam, jpi, glamu, jpj, gphiu,           &  ! Horizontal grid: glamu and gphiu 
    519519            &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,       & 
    520             &          nit000-1, zjulian, rdt, nh_U, nid_U, domain_id=nidom, snc4chunks=snc4set ) 
     520            &          nit000-1, zjulian, rn_Dt, nh_U, nid_U, domain_id=nidom, snc4chunks=snc4set ) 
    521521         CALL histvert( nid_U, "depthu", "Vertical U levels",      &  ! Vertical grid: gdept 
    522522            &           "m", ipk, gdept_1d, nz_U, "down" ) 
     
    531531         CALL histbeg( clhstnam, jpi, glamv, jpj, gphiv,           &  ! Horizontal grid: glamv and gphiv 
    532532            &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,       & 
    533             &          nit000-1, zjulian, rdt, nh_V, nid_V, domain_id=nidom, snc4chunks=snc4set ) 
     533            &          nit000-1, zjulian, rn_Dt, nh_V, nid_V, domain_id=nidom, snc4chunks=snc4set ) 
    534534         CALL histvert( nid_V, "depthv", "Vertical V levels",      &  ! Vertical grid : gdept 
    535535            &          "m", ipk, gdept_1d, nz_V, "down" ) 
     
    544544         CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,           &  ! Horizontal grid: glamt and gphit 
    545545            &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,       & 
    546             &          nit000-1, zjulian, rdt, nh_W, nid_W, domain_id=nidom, snc4chunks=snc4set ) 
     546            &          nit000-1, zjulian, rn_Dt, nh_W, nid_W, domain_id=nidom, snc4chunks=snc4set ) 
    547547         CALL histvert( nid_W, "depthw", "Vertical W levels",      &  ! Vertical grid: gdepw 
    548548            &          "m", ipk, gdepw_1d, nz_W, "down" ) 
     
    554554            CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,           &  ! Horizontal grid: glamt and gphit 
    555555               &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,       & 
    556                &          nit000-1, zjulian, rdt, nh_A, nid_A, domain_id=nidom, snc4chunks=snc4set ) 
     556               &          nit000-1, zjulian, rn_Dt, nh_A, nid_A, domain_id=nidom, snc4chunks=snc4set ) 
    557557            CALL histvert( nid_A, "ght_abl", "Vertical T levels",      &  ! Vertical grid: gdept 
    558558               &           "m", ipka, ght_abl(2:jpka), nz_A, "up" ) 
  • NEMO/trunk/src/OCE/DIU/diu_coolskin.F90

    r12377 r12489  
    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/trunk/src/OCE/DIU/diu_layers.F90

    r12377 r12489  
    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/trunk/src/OCE/DOM/daymod.F90

    r12377 r12489  
    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/trunk/src/OCE/DOM/dom_oce.F90

    r12377 r12489  
    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/trunk/src/OCE/DOM/domain.F90

    r12377 r12489  
    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/trunk/src/OCE/DOM/domvvl.F90

    r12377 r12489  
    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/trunk/src/OCE/DOM/istate.F90

    r12377 r12489  
    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/trunk/src/OCE/DOM/phycst.F90

    r10068 r12489  
    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/trunk/src/OCE/DYN/dynatf.F90

    r12377 r12489  
    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/trunk/src/OCE/DYN/dynspg.F90

    r12377 r12489  
    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/trunk/src/OCE/DYN/dynspg_exp.F90

    r12377 r12489  
    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/trunk/src/OCE/DYN/dynspg_ts.F90

    r12377 r12489  
    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/trunk/src/OCE/DYN/dynzdf.F90

    r12377 r12489  
    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/trunk/src/OCE/DYN/sshwzv.F90

    r12377 r12489  
    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/trunk/src/OCE/DYN/wet_dry.F90

    r12377 r12489  
    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/trunk/src/OCE/FLO/flo4rk.F90

    r12377 r12489  
    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/trunk/src/OCE/FLO/floblk.F90

    r12377 r12489  
    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/trunk/src/OCE/FLO/flowri.F90

    r12377 r12489  
    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/trunk/src/OCE/ICB/icbini.F90

    r12472 r12489  
    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/trunk/src/OCE/ICB/icbtrj.F90

    r10068 r12489  
    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/trunk/src/OCE/IOM/iom.F90

    r12377 r12489  
    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/trunk/src/OCE/IOM/restart.F90

    r12377 r12489  
    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/trunk/src/OCE/ISF/isfcav.F90

    r12343 r12489  
    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/trunk/src/OCE/ISF/isfcavmlt.F90

    r12340 r12489  
    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/trunk/src/OCE/ISF/isfcpl.F90

    r12353 r12489  
    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/trunk/src/OCE/ISF/isfdynatf.F90

    r12372 r12489  
    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/trunk/src/OCE/ISF/isfhdiv.F90

    r12340 r12489  
    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/trunk/src/OCE/ISF/isfpar.F90

    r12077 r12489  
    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/trunk/src/OCE/ISF/isfparmlt.F90

    r12077 r12489  
    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/trunk/src/OCE/LDF/ldfdyn.F90

    r12377 r12489  
    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/trunk/src/OCE/LDF/ldftra.F90

    r12377 r12489  
    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/trunk/src/OCE/OBS/diaobs.F90

    r12377 r12489  
    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/trunk/src/OCE/OBS/obs_prep.F90

    r12377 r12489  
    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         &n