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 8870 for branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/DYN/wet_dry.F90 – NEMO

Ignore:
Timestamp:
2017-12-01T10:48:12+01:00 (6 years ago)
Author:
deazer
Message:

Changed WAD option names to Iterative and Directional
Removed old Diagnostics
Updated Domain CFG to allow domain generation with ref height for wad cases
Cleaned up TEST_CASES/cfg.txt file (need to not include WAD2 etc)
TEST caaes run ok
SETTE runs OK
AMM15 5 level runs OK

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/DYN/wet_dry.F90

    r8865 r8870  
    77   !! Wetting and drying includes initialisation routine and routines to 
    88   !! compute and apply flux limiters and preserve water depth positivity 
    9    !! only effects if wetting/drying is on (ln_wd == .true.) 
     9   !! only effects if wetting/drying is on (ln_wd_il == .true. or ln_wd_dl==.true. ) 
    1010   !!============================================================================== 
    1111   !! History :  3.6  ! 2014-09  ((H.Liu)  Original code 
     
    3838   REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:) ::   wdramp, wdrampu, wdrampv ! for hpg limiting 
    3939 
    40    LOGICAL,  PUBLIC  ::   ln_wd       !: Wetting/drying activation switch (T:on,F:off) 
     40   LOGICAL,  PUBLIC  ::   ln_wd_il    !: Wetting/drying il activation switch (T:on,F:off) 
     41   LOGICAL,  PUBLIC  ::   ln_wd_dl    !: Wetting/drying dl activation switch (T:on,F:off) 
    4142   REAL(wp), PUBLIC  ::   rn_wdmin0   !: depth at which wetting/drying starts 
    42    LOGICAL,  PUBLIC  ::   ln_rwd      !: ROMS Wetting/drying activation switch (T:on,F:off) 
    4343   REAL(wp), PUBLIC  ::   rn_wdmin1   !: minimum water depth on dried cells 
    4444   REAL(wp), PUBLIC  ::   rn_wdmin2   !: tolerance of minimum water depth on dried cells 
     
    4646                                           !: will be considered 
    4747   INTEGER , PUBLIC  ::   nn_wdit     !: maximum number of iteration for W/D limiter 
    48    LOGICAL,  PUBLIC  ::   ln_rwd_bc   !: ROMS scheme: True implies 3D velocities are set to the barotropic values at points  
     48   LOGICAL,  PUBLIC  ::   ln_wd_dl_bc !: DL scheme: True implies 3D velocities are set to the barotropic values at points  
    4949                                      !: where the flow is from wet points on less than half the barotropic sub-steps   
    50    LOGICAL,  PUBLIC  ::   ln_rwd_rmp  !: use a ramp for the rwd flux limiter between 2 rn_wdmin1 and rn_wdmin1 (rather than a cut-off at rn_wdmin1)       
     50   LOGICAL,  PUBLIC  ::   ln_wd_dl_rmp !: use a ramp for the dl flux limiter between 2 rn_wdmin1 and rn_wdmin1 (rather than a cut-off at rn_wdmin1)       
    5151   REAL(wp), PUBLIC  ::   rn_ssh_ref  !: height of z=0 with respect to the geoid;  
    5252   REAL(wp), PUBLIC  ::   rn_ht_0     !: the height at which ht_0 = 0    
    5353 
    54    LOGICAL,  PUBLIC  ::   ln_wd_diag  ! True implies wad diagnostic at chosen point are printed out 
    55    INTEGER , PUBLIC  ::   jn_wd_i, jn_wd_j, jn_wd_k   ! indices at which diagnostic outputs are generated  
    5654 
    5755   PUBLIC   wad_init                  ! initialisation routine called by step.F90 
     
    7169      !! ** input   : - namwad namelist 
    7270      !!---------------------------------------------------------------------- 
    73       NAMELIST/namwad/ ln_wd, ln_rwd, rn_wdmin0, ln_rwd, rn_wdmin1, rn_wdmin2, rn_wdld, nn_wdit, ln_wd_diag, ln_rwd_bc, & 
    74                      &  rn_ht_0, jn_wd_i, jn_wd_j, jn_wd_k,ln_rwd_rmp 
     71      NAMELIST/namwad/ ln_wd_il, ln_wd_dl, rn_wdmin0, ln_wd_dl, rn_wdmin1, rn_wdmin2, rn_wdld, nn_wdit, ln_wd_dl_bc, & 
     72                     &  rn_ht_0,ln_wd_dl_rmp 
    7573 
    7674      INTEGER  ::   ios                 ! Local integer output status for namelist read 
     
    9391         WRITE(numout,*) '~~~~~~~~' 
    9492         WRITE(numout,*) '   Namelist namwad' 
    95          WRITE(numout,*) '      Logical for NOC  wd scheme         ln_wd      = ', ln_wd 
    96          WRITE(numout,*) '      Logical for ROMS wd scheme         ln_rwd     = ', ln_rwd 
     93         WRITE(numout,*) '      Logical for Iter Lim wd option ln_wd_il       = ', ln_wd_il 
     94         WRITE(numout,*) '      Logical for Dir. Lim wd option ln_wd_dl       = ', ln_wd_dl 
    9795         WRITE(numout,*) '      Depth at which wet/drying starts rn_wdmin0    = ', rn_wdmin0 
    9896         WRITE(numout,*) '      Minimum wet depth on dried cells rn_wdmin1    = ', rn_wdmin1 
     
    10098         WRITE(numout,*) '      land elevation threshold         rn_wdld      = ', rn_wdld 
    10199         WRITE(numout,*) '      Max iteration for W/D limiter    nn_wdit      = ', nn_wdit 
    102          WRITE(numout,*) '      Logical for WAD diagnostics      ln_wd_diag   = ', ln_wd_diag 
    103          WRITE(numout,*) '      T => baroclinic u,v = 0 at dry pts: ln_rwd_bc = ', ln_rwd_bc      
    104          WRITE(numout,*) '      use a ramp for rwd limiter:      ln_rwd_rmp   = ', ln_rwd_rmp 
     100         WRITE(numout,*) '      T => baroclinic u,v = 0 at dry pts: ln_wd_dl_bc = ', ln_wd_dl_bc      
     101         WRITE(numout,*) '      use a ramp for rwd limiter:      ln_wd_dl_rwd_rmp   = ', ln_wd_dl_rmp 
    105102         WRITE(numout,*) '      the height (z) at which ht_0 = 0:rn_ht_0      = ', rn_ht_0   
    106          WRITE(numout,*) '      i-index for diagnostic point     jn_wd_i      = ', jn_wd_i 
    107          WRITE(numout,*) '      j-index for diagnostic point     jn_wd_j      = ', jn_wd_j 
    108          WRITE(numout,*) '      k-index for diagnostic point     jn_wd_k      = ', jn_wd_k 
    109103      ENDIF 
    110104      ! 
    111       IF(ln_wd .OR. ln_rwd) THEN 
     105      IF(ln_wd_il .OR. ln_wd_dl) THEN 
    112106         ALLOCATE( wdmask(jpi,jpj),   STAT=ierr ) 
    113107         ALLOCATE( wdramp(jpi,jpj), wdrampu(jpi,jpj), wdrampv(jpi,jpj), STAT=ierr )  
     
    147141      IF( nn_timing == 1 )  CALL timing_start('wad_lmt') 
    148142 
    149       IF(ln_wd) THEN 
     143      IF(ln_wd_il) THEN 
    150144 
    151145        CALL wrk_alloc( jpi, jpj, zflxp, zflxn, zflxu, zflxv, zflxu1, zflxv1 ) 
     
    333327      IF( nn_timing == 1 )  CALL timing_start('wad_lmt_bt') 
    334328 
    335       IF(ln_wd) THEN 
     329      IF(ln_wd_il) THEN 
    336330 
    337331        CALL wrk_alloc( jpi, jpj, zflxp, zflxn, zflxu1, zflxv1 ) 
Note: See TracChangeset for help on using the changeset viewer.