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

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 9863 for NEMO/branches/2018/dev_r9838_ENHANCE04_MLF/src/OCE/DYN/wet_dry.F90 – NEMO

Ignore:
Timestamp:
2018-06-30T12:51:02+02:00 (6 years ago)
Author:
gm
Message:

#1911 (ENHANCE-04): simplified implementation of the Euler stepping at nit000

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2018/dev_r9838_ENHANCE04_MLF/src/OCE/DYN/wet_dry.F90

    r9168 r9863  
    117117 
    118118 
    119    SUBROUTINE wad_lmt( sshb1, sshemp, z2dt ) 
     119   SUBROUTINE wad_lmt( sshb1, sshemp, p2dt ) 
    120120      !!---------------------------------------------------------------------- 
    121121      !!                  ***  ROUTINE wad_lmt  *** 
     
    129129      REAL(wp), DIMENSION(:,:), INTENT(inout) ::   sshb1        !!gm DOCTOR names: should start with p ! 
    130130      REAL(wp), DIMENSION(:,:), INTENT(in   ) ::   sshemp 
    131       REAL(wp)                , INTENT(in   ) ::   z2dt 
     131      REAL(wp)                , INTENT(in   ) ::   p2dt 
    132132      ! 
    133133      INTEGER  ::   ji, jj, jk, jk1     ! dummy loop indices 
     
    220220                  &   + MIN( zflxv1(ji,jj) , 0._wp ) - MAX( zflxv1(ji,  jj-1) , 0._wp)  
    221221               ! 
    222                zdep1 = (zzflxp + zzflxn) * z2dt / ztmp 
    223                zdep2 = ht_0(ji,jj) + sshb1(ji,jj) - rn_wdmin1 - z2dt * sshemp(ji,jj) 
     222               zdep1 = (zzflxp + zzflxn) * p2dt / ztmp 
     223               zdep2 = ht_0(ji,jj) + sshb1(ji,jj) - rn_wdmin1 - p2dt * sshemp(ji,jj) 
    224224               ! 
    225225               IF( zdep1 > zdep2 ) THEN 
    226226                  wdmask(ji, jj) = 0._wp 
    227                   zcoef = ( ( zdep2 - rn_wdmin2 ) * ztmp - zzflxn * z2dt ) / ( zflxp(ji,jj) * z2dt ) 
    228                   !zcoef = ( ( zdep2 - rn_wdmin2 ) * ztmp - zzflxn * z2dt ) / ( zzflxp * z2dt ) 
     227                  zcoef = ( ( zdep2 - rn_wdmin2 ) * ztmp - zzflxn * p2dt ) / ( zflxp(ji,jj) * p2dt ) 
     228                  !zcoef = ( ( zdep2 - rn_wdmin2 ) * ztmp - zzflxn * p2dt ) / ( zzflxp * p2dt ) 
    229229                  ! flag if the limiter has been used but stop flagging if the only 
    230230                  ! changes have zeroed the coefficient since further iterations will 
     
    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, pdt ) 
    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   ) ::   pdt    ! external mode time-step [s] 
    283283      REAL(wp), DIMENSION(:,:), INTENT(inout) ::   zflxu,  zflxv, sshn_e, zssh_frc   
    284284      ! 
    285285      INTEGER  ::   ji, jj, jk, jk1     ! dummy loop indices 
    286286      INTEGER  ::   jflag               ! local integer 
    287       REAL(wp) ::   z2dt 
    288287      REAL(wp) ::   zcoef, zdep1, zdep2 ! local scalars 
    289288      REAL(wp) ::   zzflxp, zzflxn      ! local scalars 
     
    298297      jflag  = 0 
    299298      zdepwd = 50._wp   ! maximum depth that ocean cells can have W/D processes 
    300       ! 
    301       z2dt = rdtbt    
    302299      ! 
    303300      zflxp(:,:)   = 0._wp 
     
    347344                  &   + min(zflxv1(ji,jj), 0._wp) - max(zflxv1(ji,  jj-1), 0._wp)  
    348345           
    349                zdep1 = (zzflxp + zzflxn) * z2dt / ztmp 
    350                zdep2 = ht_0(ji,jj) + sshn_e(ji,jj) - rn_wdmin1 - z2dt * zssh_frc(ji,jj) 
     346               zdep1 = (zzflxp + zzflxn) * pdt / ztmp 
     347               zdep2 = ht_0(ji,jj) + sshn_e(ji,jj) - rn_wdmin1 - pdt * zssh_frc(ji,jj) 
    351348           
    352349               IF(zdep1 > zdep2) THEN 
    353                  zcoef = ( ( zdep2 - rn_wdmin2 ) * ztmp - zzflxn * z2dt ) / ( zflxp(ji,jj) * z2dt ) 
    354                  !zcoef = ( ( zdep2 - rn_wdmin2 ) * ztmp - zzflxn * z2dt ) / ( zzflxp * z2dt ) 
     350                 zcoef = ( ( zdep2 - rn_wdmin2 ) * ztmp - zzflxn * pdt ) / ( zflxp(ji,jj) * pdt ) 
     351                 !zcoef = ( ( zdep2 - rn_wdmin2 ) * ztmp - zzflxn * pdt ) / ( zzflxp * pdt ) 
    355352                 ! flag if the limiter has been used but stop flagging if the only 
    356353                 ! changes have zeroed the coefficient since further iterations will 
Note: See TracChangeset for help on using the changeset viewer.