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 8956 – NEMO

Changeset 8956


Ignore:
Timestamp:
2017-12-08T14:17:56+01:00 (7 years ago)
Author:
acc
Message:

Branch UKMO/ROMS_WAD_7832. Check in cosmetic changes made during review of code (to be verified). Still a few outstanding queries to be agreed before this branch is ready

Location:
branches/UKMO/ROMS_WAD_7832/NEMOGCM
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/ROMS_WAD_7832/NEMOGCM/CONFIG/TEST_CASES/WAD/MY_SRC/domain.F90

    r8870 r8956  
    674674      ENDIF 
    675675      ! 
    676       IF( ln_wd_il .or. ln_wd_dl  ) THEN              ! wetting and drying domain 
     676      IF( ll_wd ) THEN              ! wetting and drying domain 
    677677         CALL iom_rstput( 0, 0, inum, 'ht_0'   , ht_0   , ktype = jp_r8 ) 
    678678      ENDIF 
  • branches/UKMO/ROMS_WAD_7832/NEMOGCM/CONFIG/TEST_CASES/WAD/MY_SRC/usrdef_zgr.F90

    r8865 r8956  
    1616   USE oce            ! ocean variables 
    1717   USE dom_oce ,  ONLY: ln_zco, ln_zps, ln_sco   ! ocean space and time domain 
    18    USE dom_oce ,  ONLY: ht_0,mi0, mi1, nimpp, njmpp,  & 
    19                       & mj0, mj1, glamt, gphit, ht_0   ! ocean space and time domain 
     18   USE dom_oce ,  ONLY: ht_0, mi0, mi1, nimpp, njmpp,  & 
     19                      & mj0, mj1, glamt, gphit         ! ocean space and time domain 
    2020   USE usrdef_nam     ! User defined : namelist variables 
    21    USE wet_dry ,  ONLY: rn_wdmin1, rn_wdmin2, rn_wdld,  rn_ht_0,rn_ssh_ref 
     21   USE wet_dry ,  ONLY: rn_wdmin1, rn_wdmin2, rn_wdld, & 
     22                      & rn_ht_0, rn_ssh_ref            ! Wetting and drying 
    2223   ! 
    2324   USE in_out_manager ! I/O manager 
  • branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/BDY/bdydyn2d.F90

    r8870 r8956  
    170170         ii = idx%nbi(jb,igrd) 
    171171         ij = idx%nbj(jb,igrd) 
    172          IF( ln_wd_il .OR. ln_wd_dl ) THEN 
     172         IF( ll_wd ) THEN 
    173173            spgu(ii, ij) = dta%ssh(jb)  - rn_ssh_ref  
    174174         ELSE 
  • branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90

    r8870 r8956  
    154154         CALL iom_put( "e3tdef"  , ( ( e3t_n(:,:,:) - e3t_0(:,:,:) ) / e3t_0(:,:,:) * 100 * tmask(:,:,:) ) ** 2 ) 
    155155 
    156       IF( (ln_wd_il .OR. ln_wd_dl )) THEN 
    157          CALL iom_put( "ssh" , sshn+rn_ssh_ref )                 ! sea surface height !bring it back to the reference need wad if here 
     156      IF( ll_wd ) THEN 
     157         CALL iom_put( "ssh" , sshn+rn_ssh_ref )   ! sea surface height (brought back to the reference used for wetting and drying) 
    158158      ELSE 
    159          CALL iom_put( "ssh" , sshn )                 ! sea surface height !bring it back to the reference need wad if here 
     159         CALL iom_put( "ssh" , sshn )              ! sea surface height 
    160160      ENDIF 
    161161 
  • branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90

    r8870 r8956  
    3939   USE domc1d         ! 1D configuration: column location 
    4040   USE dyncor_c1d     ! 1D configuration: Coriolis term    (cor_c1d routine) 
    41    USE wet_dry,   ONLY :   ln_wd_il, ln_wd_dl 
     41   USE wet_dry,  ONLY : ll_wd 
    4242   ! 
    4343   USE in_out_manager ! I/O manager 
     
    674674      ENDIF 
    675675      ! 
    676       IF( ln_wd_il  .or. ln_wd_dl ) THEN              ! wetting and drying domain 
     676      IF( ll_wd ) THEN              ! wetting and drying domain 
    677677         CALL iom_rstput( 0, 0, inum, 'ht_0'   , ht_0   , ktype = jp_r8 ) 
    678678      ENDIF 
  • branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90

    r8870 r8956  
    877877            ! 
    878878 
    879 ! MJB ln_wd edits start here - these are essential  
    880  
    881             IF( (ln_wd_il .OR. ln_wd_dl)) THEN  
    882  
    883               ! Wetting and drying test case 
     879            IF( ll_wd ) THEN   ! MJB ll_wd edits start here - these are essential  
     880               ! 
    884881               IF( cn_cfg == 'wad' ) THEN 
     882                  ! Wetting and drying test case 
    885883                  CALL usr_def_istate( gdept_b, tmask, tsb, ub, vb, sshb  ) 
    886884                  tsn  (:,:,:,:) = tsb (:,:,:,:)       ! set now values from to before ones 
     
    888886                  un   (:,:,:)   = ub  (:,:,:) 
    889887                  vn   (:,:,:)   = vb  (:,:,:) 
    890                ELSEIF( ln_wd_il .or. ln_wd_dl   ) THEN ! if not test case 
     888               ELSE 
     889                  ! if not test case 
    891890                  sshn(:,:) = -rn_ssh_ref 
    892891                  sshb(:,:) = -rn_ssh_ref 
     
    902901                     ENDDO 
    903902                  ENDDO 
    904                ENDIF !If wad elseif ln_wd_il or ln_wd_dl 
     903               ENDIF !If test case else 
    905904 
    906905               ! Adjust vertical metrics for all wad 
    907906               DO jk = 1, jpk 
    908                     e3t_n(:,:,jk) =  e3t_0(:,:,jk) * ( ht_0(:,:) - rn_ht_0 + sshn(:,:)  ) & 
    909                       &                            / ( ht_0(:,:) + 1._wp - ssmask(:,:) ) * tmask(:,:,jk)   & 
    910                       &            + e3t_0(:,:,jk)                               * (1._wp -tmask(:,:,jk)) 
     907                  e3t_n(:,:,jk) =  e3t_0(:,:,jk) * ( ht_0(:,:) - rn_ht_0 + sshn(:,:)  ) & 
     908                    &                            / ( ht_0(:,:) + 1._wp - ssmask(:,:) ) * tmask(:,:,jk)   & 
     909                    &            + e3t_0(:,:,jk) * ( 1._wp - tmask(:,:,jk) ) 
    911910               END DO 
    912911               e3t_b(:,:,:) = e3t_n(:,:,:) 
     
    914913               DO ji = 1, jpi 
    915914                  DO jj = 1, jpj 
    916                      IF ( ht_0(ji,jj) .LE. 0.0 .AND. NINT(ssmask(ji,jj)) .EQ. 1) THEN 
     915                     IF ( ht_0(ji,jj) .LE. 0.0 .AND. NINT( ssmask(ji,jj) ) .EQ. 1) THEN 
    917916                       CALL ctl_stop( 'dom_vvl_rst: ht_0 must be positive at potentially wet points' ) 
    918917                     ENDIF 
     
    927926               sshn(:,:) = 0.0_wp 
    928927               ! 
    929             END IF 
     928            END IF           ! end of ll_wd edits 
    930929 
    931930            IF( ln_vvl_ztilde .OR. ln_vvl_layer) THEN 
  • branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/DOM/domwri.F90

    r8870 r8956  
    1818   USE dom_oce         ! ocean space and time domain 
    1919   USE phycst ,   ONLY :   rsmall 
    20    USE wet_dry,   ONLY :   ln_wd_il, ln_wd_dl 
     20   USE wet_dry,   ONLY :   ll_wd  ! Wetting and drying 
    2121   ! 
    2222   USE in_out_manager  ! I/O manager 
     
    198198      ENDIF 
    199199      ! 
    200       IF( ln_wd_il .OR. ln_wd_dl ) CALL iom_rstput( 0, 0, inum, 'ht_0'   , ht_0   , ktype = jp_r8 ) 
     200      IF( ll_wd ) CALL iom_rstput( 0, 0, inum, 'ht_0'   , ht_0   , ktype = jp_r8 ) 
    201201 
    202202      !                                     ! ============================ 
  • branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90

    r8870 r8956  
    3030   USE usrdef_zgr     ! user defined vertical coordinate system 
    3131   USE depth_e3       ! depth <=> e3 
    32    USE wet_dry, ONLY: ln_wd_il, ln_wd_dl, rn_ssh_ref 
     32   USE wet_dry,   ONLY: ll_wd, rn_ssh_ref  ! Wetting and drying 
    3333   ! 
    3434   USE in_out_manager ! I/O manager 
     
    259259      ! 
    260260      ! reference depth for negative bathy (wetting and drying only) 
    261       IF( ln_wd_il .OR. ln_wd_dl )  CALL iom_get( inum,  'rn_wd_ref_depth' , rn_ssh_ref   ) 
     261      IF( ll_wd )  CALL iom_get( inum,  'rn_wd_ref_depth' , rn_ssh_ref   ) 
    262262      ! 
    263263      CALL iom_close( inum ) 
  • branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90

    r8870 r8956  
    454454        DO jj = 2, jpjm1 
    455455           DO ji = 2, jpim1  
    456              ll_tmp1 = MIN(   sshn(ji,jj)               ,   sshn(ji+1,jj) ) >                & 
     456             ll_tmp1 = MIN(  sshn(ji,jj)               ,  sshn(ji+1,jj) ) >                & 
    457457                  &    MAX( -ht_0(ji,jj)               , -ht_0(ji+1,jj) ) .AND.            & 
    458                   &    MAX(   sshn(ji,jj) + ht_0(ji,jj),   sshn(ji+1,jj) + ht_0(ji+1,jj) ) & 
    459                   &                                                         > rn_wdmin1 + rn_wdmin2 
    460              ll_tmp2 = ( ABS( sshn(ji,jj)               -   sshn(ji+1,jj) ) > 1.E-12 ) .AND. (             & 
    461                   &    MAX(   sshn(ji,jj)               ,   sshn(ji+1,jj) ) >                & 
    462                   &    MAX( -ht_0(ji,jj)               , -ht_0(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 ) 
     458                  &    MAX(  sshn(ji,jj) +  ht_0(ji,jj),  sshn(ji+1,jj) + ht_0(ji+1,jj) ) & 
     459                  &                                                       > rn_wdmin1 + rn_wdmin2 
     460             ll_tmp2 = ( ABS( sshn(ji,jj)              -  sshn(ji+1,jj) ) > 1.E-12 ) .AND. (       & 
     461                  &    MAX(   sshn(ji,jj)              ,  sshn(ji+1,jj) ) >                & 
     462                  &    MAX(  -ht_0(ji,jj)              , -ht_0(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 ) 
    463463 
    464464             IF(ll_tmp1) THEN 
     
    467467               ! no worries about  sshn(ji+1,jj) -  sshn(ji  ,jj) = 0, it won't happen ! here 
    468468               zcpx(ji,jj) = ABS( (sshn(ji+1,jj) + ht_0(ji+1,jj) - sshn(ji,jj) - ht_0(ji,jj)) & 
    469                            &    / (sshn(ji+1,jj) -  sshn(ji  ,jj)) ) 
     469                           &    / (sshn(ji+1,jj) - sshn(ji  ,jj)) ) 
    470470             ELSE 
    471471               zcpx(ji,jj) = 0._wp 
    472472             END IF 
    473473       
    474              ll_tmp1 = MIN(   sshn(ji,jj)               ,   sshn(ji,jj+1) ) >                & 
    475                   &    MAX( -ht_0(ji,jj)               , -ht_0(ji,jj+1) ) .AND.            & 
    476                   &    MAX(   sshn(ji,jj) + ht_0(ji,jj),   sshn(ji,jj+1) + ht_0(ji,jj+1) ) & 
    477                   &                                                         > rn_wdmin1 + rn_wdmin2 
    478              ll_tmp2 = ( ABS( sshn(ji,jj)               -   sshn(ji,jj+1) ) > 1.E-12 ) .AND. (             & 
    479                   &    MAX(   sshn(ji,jj)               ,   sshn(ji,jj+1) ) >                & 
    480                   &    MAX( -ht_0(ji,jj)               , -ht_0(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 ) 
     474             ll_tmp1 = MIN(  sshn(ji,jj)              ,  sshn(ji,jj+1) ) >                & 
     475                  &    MAX( -ht_0(ji,jj)              , -ht_0(ji,jj+1) ) .AND.            & 
     476                  &    MAX(  sshn(ji,jj) + ht_0(ji,jj),  sshn(ji,jj+1) + ht_0(ji,jj+1) ) & 
     477                  &                                                      > rn_wdmin1 + rn_wdmin2 
     478             ll_tmp2 = ( ABS( sshn(ji,jj)             -  sshn(ji,jj+1) ) > 1.E-12 ) .AND. (        & 
     479                  &    MAX(   sshn(ji,jj)             ,  sshn(ji,jj+1) ) >                & 
     480                  &    MAX(  -ht_0(ji,jj)             , -ht_0(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 ) 
    481481 
    482482             IF(ll_tmp1) THEN 
     
    485485               ! no worries about  sshn(ji,jj+1) -  sshn(ji,jj  ) = 0, it won't happen ! here 
    486486               zcpy(ji,jj) = ABS( (sshn(ji,jj+1) + ht_0(ji,jj+1) - sshn(ji,jj) - ht_0(ji,jj)) & 
    487                            &    / (sshn(ji,jj+1) -  sshn(ji,jj  )) ) 
     487                           &    / (sshn(ji,jj+1) - sshn(ji,jj  )) ) 
    488488             ELSE 
    489489               zcpy(ji,jj) = 0._wp 
     
    706706        DO jj = 2, jpjm1 
    707707           DO ji = 2, jpim1  
    708              ll_tmp1 = MIN(   sshn(ji,jj)               ,   sshn(ji+1,jj) ) >                & 
    709                   &    MAX( -ht_0(ji,jj)               , -ht_0(ji+1,jj) ) .AND.            & 
    710                   &    MAX(   sshn(ji,jj) + ht_0(ji,jj),   sshn(ji+1,jj) + ht_0(ji+1,jj) ) & 
    711                   &                                                         > rn_wdmin1 + rn_wdmin2 
    712              ll_tmp2 = ( ABS( sshn(ji,jj)               -   sshn(ji+1,jj) ) > 1.E-12 ) .AND. (             & 
    713                   &    MAX(   sshn(ji,jj)               ,   sshn(ji+1,jj) ) >                & 
    714                   &    MAX( -ht_0(ji,jj)               , -ht_0(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 ) 
     708             ll_tmp1 = MIN(  sshn(ji,jj)              ,  sshn(ji+1,jj) ) >                & 
     709                  &    MAX( -ht_0(ji,jj)              , -ht_0(ji+1,jj) ) .AND.            & 
     710                  &    MAX(  sshn(ji,jj) + ht_0(ji,jj),  sshn(ji+1,jj) + ht_0(ji+1,jj) ) & 
     711                  &                                                      > rn_wdmin1 + rn_wdmin2 
     712             ll_tmp2 = ( ABS( sshn(ji,jj)             -  sshn(ji+1,jj) ) > 1.E-12 ) .AND. (        & 
     713                  &    MAX(   sshn(ji,jj)             ,  sshn(ji+1,jj) ) >                & 
     714                  &    MAX(  -ht_0(ji,jj)             , -ht_0(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 ) 
    715715 
    716716             IF(ll_tmp1) THEN 
     
    719719               ! no worries about  sshn(ji+1,jj) -  sshn(ji  ,jj) = 0, it won't happen ! here 
    720720               zcpx(ji,jj) = ABS( (sshn(ji+1,jj) + ht_0(ji+1,jj) - sshn(ji,jj) - ht_0(ji,jj)) & 
    721                            &    / (sshn(ji+1,jj) -  sshn(ji  ,jj)) ) 
     721                           &    / (sshn(ji+1,jj) - sshn(ji  ,jj)) ) 
    722722             ELSE 
    723723               zcpx(ji,jj) = 0._wp 
    724724             END IF 
    725725       
    726              ll_tmp1 = MIN(   sshn(ji,jj)               ,   sshn(ji,jj+1) ) >                & 
    727                   &    MAX( -ht_0(ji,jj)               , -ht_0(ji,jj+1) ) .AND.            & 
    728                   &    MAX(   sshn(ji,jj) + ht_0(ji,jj),   sshn(ji,jj+1) + ht_0(ji,jj+1) ) & 
    729                   &                                                         > rn_wdmin1 + rn_wdmin2 
    730              ll_tmp2 = ( ABS( sshn(ji,jj)               -   sshn(ji,jj+1) ) > 1.E-12 ) .AND. (             & 
    731                   &    MAX(   sshn(ji,jj)               ,   sshn(ji,jj+1) ) >                & 
    732                   &    MAX( -ht_0(ji,jj)               , -ht_0(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 ) 
     726             ll_tmp1 = MIN(  sshn(ji,jj)              ,  sshn(ji,jj+1) ) >                & 
     727                  &    MAX( -ht_0(ji,jj)              , -ht_0(ji,jj+1) ) .AND.            & 
     728                  &    MAX(  sshn(ji,jj) + ht_0(ji,jj),  sshn(ji,jj+1) + ht_0(ji,jj+1) ) & 
     729                  &                                                      > rn_wdmin1 + rn_wdmin2 
     730             ll_tmp2 = ( ABS( sshn(ji,jj)             -  sshn(ji,jj+1) ) > 1.E-12 ) .AND. (        & 
     731                  &    MAX(   sshn(ji,jj)             ,  sshn(ji,jj+1) ) >                & 
     732                  &    MAX(  -ht_0(ji,jj)             , -ht_0(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 ) 
    733733 
    734734             IF(ll_tmp1) THEN 
     
    737737               ! no worries about  sshn(ji,jj+1) -  sshn(ji,jj  ) = 0, it won't happen ! here 
    738738               zcpy(ji,jj) = ABS( (sshn(ji,jj+1) + ht_0(ji,jj+1) - sshn(ji,jj) - ht_0(ji,jj)) & 
    739                            &    / (sshn(ji,jj+1) -  sshn(ji,jj  )) ) 
     739                           &    / (sshn(ji,jj+1) - sshn(ji,jj  )) ) 
    740740             ELSE 
    741741               zcpy(ji,jj) = 0._wp 
     
    10051005        DO jj = 2, jpjm1 
    10061006           DO ji = 2, jpim1  
    1007              ll_tmp1 = MIN(   sshn(ji,jj)               ,   sshn(ji+1,jj) ) >                & 
    1008                   &    MAX( -ht_0(ji,jj)               , -ht_0(ji+1,jj) ) .AND.            & 
    1009                   &    MAX(   sshn(ji,jj) + ht_0(ji,jj),   sshn(ji+1,jj) + ht_0(ji+1,jj) ) & 
    1010                   &                                                         > rn_wdmin1 + rn_wdmin2 
    1011              ll_tmp2 = ( ABS( sshn(ji,jj)               -   sshn(ji+1,jj) ) > 1.E-12 ) .AND. (             & 
    1012                   &    MAX(   sshn(ji,jj)               ,   sshn(ji+1,jj) ) >                & 
    1013                   &    MAX( -ht_0(ji,jj)               , -ht_0(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 ) 
     1007             ll_tmp1 = MIN(  sshn(ji,jj)              ,  sshn(ji+1,jj) ) >                & 
     1008                  &    MAX( -ht_0(ji,jj)              , -ht_0(ji+1,jj) ) .AND.            & 
     1009                  &    MAX(  sshn(ji,jj) + ht_0(ji,jj),  sshn(ji+1,jj) + ht_0(ji+1,jj) ) & 
     1010                  &                                                      > rn_wdmin1 + rn_wdmin2 
     1011             ll_tmp2 = ( ABS( sshn(ji,jj)             -  sshn(ji+1,jj) ) > 1.E-12 ) .AND. (         & 
     1012                  &    MAX(   sshn(ji,jj)             ,  sshn(ji+1,jj) ) >                & 
     1013                  &    MAX(  -ht_0(ji,jj)             , -ht_0(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 ) 
    10141014 
    10151015             IF(ll_tmp1) THEN 
     
    10251025             END IF 
    10261026       
    1027              ll_tmp1 = MIN(   sshn(ji,jj)               ,   sshn(ji,jj+1) ) >                & 
    1028                   &    MAX( -ht_0(ji,jj)               , -ht_0(ji,jj+1) ) .AND.            & 
    1029                   &    MAX(   sshn(ji,jj) + ht_0(ji,jj),   sshn(ji,jj+1) + ht_0(ji,jj+1) ) & 
    1030                   &                                                         > rn_wdmin1 + rn_wdmin2 
    1031              ll_tmp2 = ( ABS( sshn(ji,jj)               -   sshn(ji,jj+1) ) > 1.E-12 ) .AND. (             & 
    1032                   &    MAX(   sshn(ji,jj)               ,   sshn(ji,jj+1) ) >                & 
    1033                   &    MAX( -ht_0(ji,jj)               , -ht_0(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 ) 
     1027             ll_tmp1 = MIN(  sshn(ji,jj)              ,  sshn(ji,jj+1) ) >                & 
     1028                  &    MAX( -ht_0(ji,jj)              , -ht_0(ji,jj+1) ) .AND.            & 
     1029                  &    MAX(  sshn(ji,jj) + ht_0(ji,jj),  sshn(ji,jj+1) + ht_0(ji,jj+1) ) & 
     1030                  &                                                      > rn_wdmin1 + rn_wdmin2 
     1031             ll_tmp2 = ( ABS( sshn(ji,jj)             -  sshn(ji,jj+1) ) > 1.E-12 ) .AND. (      & 
     1032                  &    MAX(   sshn(ji,jj)             ,  sshn(ji,jj+1) ) >                & 
     1033                  &    MAX(  -ht_0(ji,jj)             , -ht_0(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 ) 
    10341034 
    10351035             IF(ll_tmp1) THEN 
     
    10381038               ! no worries about  sshn(ji,jj+1) -  sshn(ji,jj  ) = 0, it won't happen ! here 
    10391039               zcpy(ji,jj) = ABS( (sshn(ji,jj+1) + ht_0(ji,jj+1) - sshn(ji,jj) - ht_0(ji,jj)) & 
    1040                            &    / (sshn(ji,jj+1) -  sshn(ji,jj  )) ) 
     1040                           &    / (sshn(ji,jj+1) - sshn(ji,jj  )) ) 
    10411041                zcpy(ji,jj) = max(min( zcpy(ji,jj) , 1.0_wp),0.0_wp) 
    10421042 
  • branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90

    r8907 r8956  
    140140      INTEGER, INTENT(in)  ::   kt   ! ocean time-step index 
    141141      ! 
    142       LOGICAL  ::   ll_fw_start        ! if true, forward integration  
    143       LOGICAL  ::   ll_init             ! if true, special startup of 2d equations 
     142      LOGICAL  ::   ll_fw_start                 ! if true, forward integration  
     143      LOGICAL  ::   ll_init                     ! if true, special startup of 2d equations 
    144144      LOGICAL  ::   ll_tmp1, ll_tmp2            ! local logical variables used in W/D 
    145       INTEGER  ::   ji, jj, jk, jn        ! dummy loop indices 
    146       INTEGER  ::   ikbu, ikbv, noffset      ! local integers 
    147       INTEGER  ::   iktu, iktv               ! local integers 
     145      INTEGER  ::   ji, jj, jk, jn              ! dummy loop indices 
     146      INTEGER  ::   ikbu, ikbv, noffset         ! local integers 
     147      INTEGER  ::   iktu, iktv                  ! local integers 
    148148      REAL(wp) ::   zmdi 
    149       REAL(wp) ::   zraur, z1_2dt_b, z2dt_bf    ! local scalars 
     149      REAL(wp) ::   zraur, z1_2dt_b, z2dt_bf    ! local scalars 
    150150      REAL(wp) ::   zx1, zy1, zx2, zy2          !   -      - 
    151       REAL(wp) ::   z1_12, z1_8, z1_4, z1_2  !   -      - 
     151      REAL(wp) ::   z1_12, z1_8, z1_4, z1_2     !   -      - 
    152152      REAL(wp) ::   zu_spg, zv_spg              !   -      - 
    153       REAL(wp) ::   zhura, zhvra          !   -      - 
    154       REAL(wp) ::   za0, za1, za2, za3    !   -      - 
     153      REAL(wp) ::   zhura, zhvra                !   -      - 
     154      REAL(wp) ::   za0, za1, za2, za3          !   -      - 
    155155      REAL(wp) ::   zwdramp                     ! local scalar - only used if ln_wd_dl = .True.  
    156156 
     
    190190      z1_2  = 0.5_wp      
    191191      zraur = 1._wp / rau0 
    192       zwdramp = 1._wp / rn_wdmin1                 ! simplest ramp  
    193 !     zwdramp = 1._wp / (rn_wdmin2 - rn_wdmin1)   ! more general ramp 
    194       !                                            ! reciprocal of baroclinic time step  
     192      zwdramp = 1._wp / rn_wdmin1               ! simplest ramp  
     193!     zwdramp = 1._wp / (rn_wdmin2 - rn_wdmin1) ! more general ramp 
     194      !                                         ! reciprocal of baroclinic time step  
    195195      IF( kt == nit000 .AND. neuler == 0 ) THEN   ;   z2dt_bf =          rdt 
    196196      ELSE                                        ;   z2dt_bf = 2.0_wp * rdt 
     
    198198      z1_2dt_b = 1.0_wp / z2dt_bf  
    199199      ! 
    200       ll_init     = ln_bt_av                       ! if no time averaging, then no specific restart  
     200      ll_init     = ln_bt_av                    ! if no time averaging, then no specific restart  
    201201      ll_fw_start = .FALSE. 
    202       !                                            ! time offset in steps for bdy data update 
     202      !                                         ! time offset in steps for bdy data update 
    203203      IF( .NOT.ln_bt_fw ) THEN   ;   noffset = - nn_baro 
    204204      ELSE                       ;   noffset =   0  
    205205      ENDIF 
    206206      ! 
    207       IF( kt == nit000 ) THEN                !* initialisation 
     207      IF( kt == nit000 ) THEN                   !* initialisation 
    208208         ! 
    209209         IF(lwp) WRITE(numout,*) 
     
    416416           DO jj = 2, jpjm1 
    417417              DO ji = 2, jpim1  
    418                 ll_tmp1 = MIN(   sshn(ji,jj)               ,   sshn(ji+1,jj) ) >                & 
     418                ll_tmp1 = MIN(  sshn(ji,jj)               ,  sshn(ji+1,jj) ) >                & 
    419419                     &    MAX( -ht_0(ji,jj)               , -ht_0(ji+1,jj) ) .AND.            & 
    420                      &    MAX(   sshn(ji,jj) + ht_0(ji,jj),   sshn(ji+1,jj) + ht_0(ji+1,jj) ) & 
    421                      &                                                         > rn_wdmin1 + rn_wdmin2 
    422                 ll_tmp2 = ( ABS( sshn(ji+1,jj)             -   sshn(ji  ,jj))  > 1.E-12 ).AND.( & 
    423                      &    MAX(   sshn(ji,jj)               ,   sshn(ji+1,jj) ) >                & 
    424                      &    MAX( -ht_0(ji,jj)               , -ht_0(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 ) 
     420                     &    MAX(  sshn(ji,jj) + ht_0(ji,jj) ,  sshn(ji+1,jj) + ht_0(ji+1,jj) ) & 
     421                     &                                                       > rn_wdmin1 + rn_wdmin2 
     422                ll_tmp2 = ( ABS( sshn(ji+1,jj)            -  sshn(ji  ,jj))  > 1.E-12 ).AND.( & 
     423                     &    MAX(   sshn(ji,jj)              ,  sshn(ji+1,jj) ) >                & 
     424                     &    MAX(  -ht_0(ji,jj)              , -ht_0(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 ) 
    425425    
    426426                IF(ll_tmp1) THEN 
     
    429429                  ! no worries about  sshn(ji+1,jj) -  sshn(ji  ,jj) = 0, it won't happen ! here 
    430430                  zcpx(ji,jj) = ABS( (sshn(ji+1,jj) + ht_0(ji+1,jj) - sshn(ji,jj) - ht_0(ji,jj)) & 
    431                               &    / (sshn(ji+1,jj) -  sshn(ji  ,jj)) ) 
     431                              &    / (sshn(ji+1,jj) - sshn(ji  ,jj)) ) 
    432432                  zcpx(ji,jj) = max(min( zcpx(ji,jj) , 1.0_wp),0.0_wp) 
    433433 
     
    436436                END IF 
    437437          
    438                 ll_tmp1 = MIN(   sshn(ji,jj)               ,   sshn(ji,jj+1) ) >                & 
     438                ll_tmp1 = MIN(  sshn(ji,jj)               ,  sshn(ji,jj+1) ) >                & 
    439439                     &    MAX( -ht_0(ji,jj)               , -ht_0(ji,jj+1) ) .AND.            & 
    440                      &    MAX(   sshn(ji,jj) + ht_0(ji,jj),   sshn(ji,jj+1) + ht_0(ji,jj+1) ) & 
    441                      &                                                         > rn_wdmin1 + rn_wdmin2 
    442                 ll_tmp2 = ( ABS( sshn(ji,jj)               -   sshn(ji,jj+1))  > 1.E-12 ).AND.( & 
    443                      &    MAX(   sshn(ji,jj)               ,   sshn(ji,jj+1) ) >                & 
    444                      &    MAX( -ht_0(ji,jj)               , -ht_0(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 ) 
     440                     &    MAX(  sshn(ji,jj) + ht_0(ji,jj) ,  sshn(ji,jj+1) + ht_0(ji,jj+1) ) & 
     441                     &                                                       > rn_wdmin1 + rn_wdmin2 
     442                ll_tmp2 = ( ABS( sshn(ji,jj)              -  sshn(ji,jj+1))  > 1.E-12 ).AND.( & 
     443                     &    MAX(   sshn(ji,jj)              ,  sshn(ji,jj+1) ) >                & 
     444                     &    MAX(  -ht_0(ji,jj)              , -ht_0(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 ) 
    445445    
    446446                IF(ll_tmp1) THEN 
     
    449449                  ! no worries about  sshn(ji,jj+1) -  sshn(ji,jj  ) = 0, it won't happen ! here 
    450450                  zcpy(ji,jj) = ABS( (sshn(ji,jj+1) + ht_0(ji,jj+1) - sshn(ji,jj) - ht_0(ji,jj)) & 
    451                               &    / (sshn(ji,jj+1) -  sshn(ji,jj  )) ) 
     451                              &    / (sshn(ji,jj+1) - sshn(ji,jj  )) ) 
    452452                  zcpy(ji,jj) = max(min( zcpy(ji,jj) , 1.0_wp),0.0_wp) 
    453453 
     
    487487      END DO  
    488488      ! 
    489       !                 ! Add bottom stress contribution from baroclinic velocities:       
     489      !                                         ! Add bottom stress contribution from baroclinic velocities:       
    490490      IF (ln_bt_fw) THEN 
    491491         DO jj = 2, jpjm1                           
     
    863863              DO ji = 2, jpim1  
    864864                ll_tmp1 = MIN( zsshp2_e(ji,jj)               , zsshp2_e(ji+1,jj) ) >                & 
    865                      &    MAX(   -ht_0(ji,jj)               ,   -ht_0(ji+1,jj) ) .AND.            & 
    866                      &    MAX( zsshp2_e(ji,jj) + ht_0(ji,jj), zsshp2_e(ji+1,jj) + ht_0(ji+1,jj) ) & 
     865                     &    MAX(    -ht_0(ji,jj)               ,    -ht_0(ji+1,jj) ) .AND.            & 
     866                     &    MAX( zsshp2_e(ji,jj) + ht_0(ji,jj) , zsshp2_e(ji+1,jj) + ht_0(ji+1,jj) ) & 
    867867                     &                                                             > rn_wdmin1 + rn_wdmin2 
    868868                ll_tmp2 = (ABS(zsshp2_e(ji,jj)               - zsshp2_e(ji+1,jj))  > 1.E-12 ).AND.( & 
    869869                     &    MAX( zsshp2_e(ji,jj)               , zsshp2_e(ji+1,jj) ) >                & 
    870                      &    MAX(   -ht_0(ji,jj)               ,   -ht_0(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 ) 
     870                     &    MAX(    -ht_0(ji,jj)               ,    -ht_0(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 ) 
    871871    
    872872                IF(ll_tmp1) THEN 
     
    874874                ELSE IF(ll_tmp2) THEN 
    875875                  ! no worries about  zsshp2_e(ji+1,jj) - zsshp2_e(ji  ,jj) = 0, it won't happen ! here 
    876                   zcpx(ji,jj) = ABS( (zsshp2_e(ji+1,jj) +    ht_0(ji+1,jj) - zsshp2_e(ji,jj) - ht_0(ji,jj)) & 
     876                  zcpx(ji,jj) = ABS( (zsshp2_e(ji+1,jj) +     ht_0(ji+1,jj) - zsshp2_e(ji,jj) - ht_0(ji,jj)) & 
    877877                              &    / (zsshp2_e(ji+1,jj) - zsshp2_e(ji  ,jj)) ) 
    878878                ELSE 
     
    881881          
    882882                ll_tmp1 = MIN( zsshp2_e(ji,jj)               , zsshp2_e(ji,jj+1) ) >                & 
    883                      &    MAX(   -ht_0(ji,jj)               ,   -ht_0(ji,jj+1) ) .AND.            & 
    884                      &    MAX( zsshp2_e(ji,jj) + ht_0(ji,jj), zsshp2_e(ji,jj+1) + ht_0(ji,jj+1) ) & 
     883                     &    MAX(    -ht_0(ji,jj)               ,    -ht_0(ji,jj+1) ) .AND.            & 
     884                     &    MAX( zsshp2_e(ji,jj) + ht_0(ji,jj) , zsshp2_e(ji,jj+1) + ht_0(ji,jj+1) ) & 
    885885                     &                                                             > rn_wdmin1 + rn_wdmin2 
    886886                ll_tmp2 = (ABS(zsshp2_e(ji,jj)               - zsshp2_e(ji,jj+1))  > 1.E-12 ).AND.( & 
    887887                     &    MAX( zsshp2_e(ji,jj)               , zsshp2_e(ji,jj+1) ) >                & 
    888                      &    MAX(   -ht_0(ji,jj)               ,   -ht_0(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 ) 
     888                     &    MAX(    -ht_0(ji,jj)               ,    -ht_0(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 ) 
    889889    
    890890                IF(ll_tmp1) THEN 
     
    892892                ELSE IF(ll_tmp2) THEN 
    893893                  ! no worries about  zsshp2_e(ji,jj+1) - zsshp2_e(ji,jj  ) = 0, it won't happen ! here 
    894                   zcpy(ji,jj) = ABS( (zsshp2_e(ji,jj+1) +    ht_0(ji,jj+1) - zsshp2_e(ji,jj) - ht_0(ji,jj)) & 
     894                  zcpy(ji,jj) = ABS( (zsshp2_e(ji,jj+1) +     ht_0(ji,jj+1) - zsshp2_e(ji,jj) - ht_0(ji,jj)) & 
    895895                              &    / (zsshp2_e(ji,jj+1) - zsshp2_e(ji,jj  )) ) 
    896896                ELSE 
     
    902902         ! 
    903903         ! Compute associated depths at U and V points: 
    904          IF( .NOT.ln_linssh  .AND. .NOT.ln_dynadv_vec ) THEN   !* Vector form 
     904         IF( .NOT.ln_linssh  .AND. .NOT.ln_dynadv_vec ) THEN     !* Vector form 
    905905            !                                         
    906906            DO jj = 2, jpjm1                             
     
    980980         ! Add bottom stresses: 
    981981!jth do implicitly instead 
    982          IF ( .NOT. ln_wd_il  .and. .NOT. ln_wd_dl) THEN ! Revert to explicit for bit comparison tests in non wad runs 
     982         IF ( .NOT. ll_wd ) THEN ! Revert to explicit for bit comparison tests in non wad runs 
    983983            zu_trd(:,:) = zu_trd(:,:) + bfrua(:,:) * un_e(:,:) * hur_e(:,:) 
    984984            zv_trd(:,:) = zv_trd(:,:) + bfrva(:,:) * vn_e(:,:) * hvr_e(:,:) 
     
    10151015         ! 
    10161016         ! Set next velocities: 
    1017          IF( ln_dynadv_vec .OR. ln_linssh ) THEN   !* Vector form 
     1017         IF( ln_dynadv_vec .OR. ln_linssh ) THEN      !* Vector form 
    10181018            DO jj = 2, jpjm1 
    10191019               DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    10311031  
    10321032!jth implicit bottom friction: 
    1033                   IF (  ln_wd_il  .or. ln_wd_dl ) THEN ! revert to explicit for bit comparison tests in non wad runs 
     1033                  IF ( ll_wd ) THEN ! revert to explicit for bit comparison tests in non wad runs 
    10341034                     ua_e(ji,jj) =  ua_e(ji,jj) /(1.0 -   rdtbt * bfrua(ji,jj) * hur_e(ji,jj)) 
    10351035                     va_e(ji,jj) =  va_e(ji,jj) /(1.0 -   rdtbt * bfrva(ji,jj) * hvr_e(ji,jj)) 
     
    10391039            END DO 
    10401040            ! 
    1041          ELSE                                      !* Flux form 
     1041         ELSE                           !* Flux form 
    10421042            DO jj = 2, jpjm1 
    10431043               DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    11001100            ua_b  (:,:) = ua_b  (:,:) + za1 * ua_e  (:,:)  
    11011101            va_b  (:,:) = va_b  (:,:) + za1 * va_e  (:,:)  
    1102          ELSE                                              ! Sum transports 
    1103             IF (.NOT.ln_wd_dl) THEN   
     1102         ELSE                                       ! Sum transports 
     1103            IF ( .NOT.ln_wd_dl ) THEN   
    11041104               ua_b  (:,:) = ua_b  (:,:) + za1 * ua_e  (:,:) * hu_e (:,:) 
    11051105               va_b  (:,:) = va_b  (:,:) + za1 * va_e  (:,:) * hv_e (:,:) 
     
    11091109            END IF  
    11101110         ENDIF 
    1111          !                                   ! Sum sea level 
     1111         !                                          ! Sum sea level 
    11121112         ssha(:,:) = ssha(:,:) + za1 * ssha_e(:,:) 
    11131113 
     
    13831383      rdtbt = rdt / REAL( nn_baro , wp ) 
    13841384      zcmax = zcmax * rdtbt 
    1385                      ! Print results 
     1385      ! Print results 
    13861386      IF(lwp) WRITE(numout,*) 
    13871387      IF(lwp) WRITE(numout,*) 'dyn_spg_ts : split-explicit free surface' 
  • branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/DYN/wet_dry.F90

    r8907 r8956  
    4646   LOGICAL,  PUBLIC  ::   ln_wd_dl_bc !: DL scheme: True implies 3D velocities are set to the barotropic values at points  
    4747                                      !: where the flow is from wet points on less than half the barotropic sub-steps   
    48    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)       
     48   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)       
    4949   REAL(wp), PUBLIC  ::   rn_ssh_ref  !: height of z=0 with respect to the geoid;  
    5050   REAL(wp), PUBLIC  ::   rn_ht_0     !: the height at which ht_0 = 0    
    5151 
     52   LOGICAL,  PUBLIC  ::   ll_wd       !: Wetting/drying activation switch if either ln_wd_il or ln_wd_dl 
    5253 
    5354   PUBLIC   wad_init                  ! initialisation routine called by step.F90 
     
    6768      !! ** input   : - namwad namelist 
    6869      !!---------------------------------------------------------------------- 
    69       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, & 
    70                      &  rn_ht_0,ln_wd_dl_rmp 
     70      NAMELIST/namwad/ ln_wd_il, ln_wd_dl, rn_wdmin0, rn_wdmin1, rn_wdmin2, rn_wdld, & 
     71                     & nn_wdit, ln_wd_dl_bc, ln_wd_dl_rmp, rn_ht_0 
    7172 
    7273      INTEGER  ::   ios                 ! Local integer output status for namelist read 
     
    8990         WRITE(numout,*) '~~~~~~~~' 
    9091         WRITE(numout,*) '   Namelist namwad' 
    91          WRITE(numout,*) '      Logical for Iter Lim wd option ln_wd_il       = ', ln_wd_il 
    92          WRITE(numout,*) '      Logical for Dir. Lim wd option ln_wd_dl       = ', ln_wd_dl 
     92         WRITE(numout,*) '      Logical for Iter Lim wd option   ln_wd_il     = ', ln_wd_il 
     93         WRITE(numout,*) '      Logical for Dir. Lim wd option   ln_wd_dl     = ', ln_wd_dl 
    9394         WRITE(numout,*) '      Depth at which wet/drying starts rn_wdmin0    = ', rn_wdmin0 
    9495         WRITE(numout,*) '      Minimum wet depth on dried cells rn_wdmin1    = ', rn_wdmin1 
    95          WRITE(numout,*) '      Tolerance of min wet depth     rn_wdmin2      = ', rn_wdmin2 
     96         WRITE(numout,*) '      Tolerance of min wet depth       rn_wdmin2    = ', rn_wdmin2 
    9697         WRITE(numout,*) '      land elevation threshold         rn_wdld      = ', rn_wdld 
    9798         WRITE(numout,*) '      Max iteration for W/D limiter    nn_wdit      = ', nn_wdit 
    98          WRITE(numout,*) '      T => baroclinic u,v = 0 at dry pts: ln_wd_dl_bc = ', ln_wd_dl_bc      
    99          WRITE(numout,*) '      use a ramp for rwd limiter:      ln_wd_dl_rwd_rmp  = ', ln_wd_dl_rmp 
    100          WRITE(numout,*) '      the height (z) at which ht_0 = 0:rn_ht_0      = ', rn_ht_0   
     99         WRITE(numout,*) '      T => baroclinic u,v=0 at dry pts: ln_wd_dl_bc = ', ln_wd_dl_bc      
     100         WRITE(numout,*) '      use a ramp for rwd limiter:  ln_wd_dl_rwd_rmp = ', ln_wd_dl_rmp 
     101         WRITE(numout,*) '      the height (z) at which ht_0=0:  rn_ht_0      = ', rn_ht_0   
    101102      ENDIF 
    102103      ! 
     104      ll_wd = .FALSE. 
    103105      IF(ln_wd_il .OR. ln_wd_dl) THEN 
     106         ll_wd = .TRUE. 
    104107         ALLOCATE( wdmask(jpi,jpj),   STAT=ierr ) 
    105108         ALLOCATE( wdramp(jpi,jpj), wdrampu(jpi,jpj), wdrampv(jpi,jpj), STAT=ierr )  
     
    139142      IF( nn_timing == 1 )  CALL timing_start('wad_lmt') 
    140143 
    141       IF(ln_wd_il) THEN 
     144      IF( ln_wd_il ) THEN 
    142145 
    143146        CALL wrk_alloc( jpi, jpj, zflxp, zflxn, zflxu, zflxv, zflxu1, zflxv1 ) 
    144147        CALL wrk_alloc( jpi, jpj, zwdlmtu, zwdlmtv) 
    145148        ! 
    146         
    147         !IF(lwp) WRITE(numout,*) 
    148         !IF(lwp) WRITE(numout,*) 'wad_lmt : wetting/drying limiters and velocity limiting' 
    149149        
    150150        jflag  = 0 
     
    177177           DO ji = 2, jpi  
    178178 
    179              IF( tmask(ji, jj, 1) < 0.5_wp ) CYCLE   ! we don't care about land cells 
    180              IF( ht_0(ji,jj)-rn_ssh_ref > zdepwd )      CYCLE   ! and cells which are unlikely to dry 
     179              IF( tmask(ji, jj, 1) < 0.5_wp ) CYCLE              ! we don't care about land cells 
     180              IF( ht_0(ji,jj) - rn_ssh_ref > zdepwd ) CYCLE   ! and cells which are unlikely to dry 
    181181 
    182182              zflxp(ji,jj) = max(zflxu(ji,jj), 0._wp) - min(zflxu(ji-1,jj),   0._wp) + & 
     
    187187              zdep2 = ht_0(ji,jj) + sshb1(ji,jj) - rn_wdmin1 
    188188              IF(zdep2 .le. 0._wp) THEN  !add more safty, but not necessary 
    189                 sshb1(ji,jj) = rn_wdmin1 - ht_0(ji,jj) 
    190                 IF(zflxu(ji,  jj) > 0._wp) zwdlmtu(ji  ,jj) = 0._wp 
    191                 IF(zflxu(ji-1,jj) < 0._wp) zwdlmtu(ji-1,jj) = 0._wp 
    192                 IF(zflxv(ji,  jj) > 0._wp) zwdlmtv(ji  ,jj) = 0._wp 
    193                 IF(zflxv(ji,jj-1) < 0._wp) zwdlmtv(ji,jj-1) = 0._wp  
    194                 wdmask(ji,jj) = 0._wp 
     189                 sshb1(ji,jj) = rn_wdmin1 - ht_0(ji,jj) 
     190                 IF(zflxu(ji,  jj) > 0._wp) zwdlmtu(ji  ,jj) = 0._wp 
     191                 IF(zflxu(ji-1,jj) < 0._wp) zwdlmtu(ji-1,jj) = 0._wp 
     192                 IF(zflxv(ji,  jj) > 0._wp) zwdlmtv(ji  ,jj) = 0._wp 
     193                 IF(zflxv(ji,jj-1) < 0._wp) zwdlmtv(ji,jj-1) = 0._wp  
     194                 wdmask(ji,jj) = 0._wp 
    195195              END IF 
    196196           ENDDO 
     
    198198 
    199199 
    200 ! slwa 
    201200! HPG limiter from jholt 
    202       wdramp(:,:) = min((ht_0(:,:) + sshb1(:,:) - rn_wdmin1)/(rn_wdmin0 - rn_wdmin1),1.0_wp) 
    203 !      write(6,*)'wdramp ',wdramp(10,10),wdramp(10,11) 
     201        wdramp(:,:) = min((ht_0(:,:) + sshb1(:,:) - rn_wdmin1)/(rn_wdmin0 - rn_wdmin1),1.0_wp) 
    204202!jth assume don't need a lbc_lnk here 
    205        DO jj = 1, jpjm1 
    206          DO ji = 1, jpim1 
    207            wdrampu(ji,jj) = min(wdramp(ji,jj),wdramp(ji+1,jj)) 
    208            wdrampv(ji,jj) = min(wdramp(ji,jj),wdramp(ji,jj+1)) 
    209          ENDDO 
    210        ENDDO 
    211         !wdrampu(:,:)=1.0_wp 
    212         !wdrampv(:,:)=1.0_wp 
     203        DO jj = 1, jpjm1 
     204           DO ji = 1, jpim1 
     205              wdrampu(ji,jj) = min(wdramp(ji,jj),wdramp(ji+1,jj)) 
     206              wdrampv(ji,jj) = min(wdramp(ji,jj),wdramp(ji,jj+1)) 
     207           END DO 
     208        END DO 
    213209! end HPG limiter 
    214210 
     
    240236           
    241237                 IF( zdep1 > zdep2 ) THEN 
    242                    wdmask(ji, jj) = 0 
    243                    zcoef = ( ( zdep2 - rn_wdmin2 ) * ztmp - zzflxn * z2dt ) / ( zflxp(ji,jj) * z2dt ) 
    244                    !zcoef = ( ( zdep2 - rn_wdmin2 ) * ztmp - zzflxn * z2dt ) / ( zzflxp * z2dt ) 
    245                    ! flag if the limiter has been used but stop flagging if the only 
    246                    ! changes have zeroed the coefficient since further iterations will 
    247                    ! not change anything 
    248                    IF( zcoef > 0._wp ) THEN 
    249                       jflag = 1  
    250                    ELSE 
    251                       zcoef = 0._wp 
    252                    ENDIF 
    253                    IF(jk1 > nn_wdit) zcoef = 0._wp 
    254                    IF(zflxu1(ji,  jj) > 0._wp) zwdlmtu(ji  ,jj) = zcoef 
    255                    IF(zflxu1(ji-1,jj) < 0._wp) zwdlmtu(ji-1,jj) = zcoef 
    256                    IF(zflxv1(ji,  jj) > 0._wp) zwdlmtv(ji  ,jj) = zcoef 
    257                    IF(zflxv1(ji,jj-1) < 0._wp) zwdlmtv(ji,jj-1) = zcoef 
     238                    wdmask(ji, jj) = 0 
     239                    zcoef = ( ( zdep2 - rn_wdmin2 ) * ztmp - zzflxn * z2dt ) / ( zflxp(ji,jj) * z2dt ) 
     240                    !zcoef = ( ( zdep2 - rn_wdmin2 ) * ztmp - zzflxn * z2dt ) / ( zzflxp * z2dt ) 
     241                    ! flag if the limiter has been used but stop flagging if the only 
     242                    ! changes have zeroed the coefficient since further iterations will 
     243                    ! not change anything 
     244                    IF( zcoef > 0._wp ) THEN 
     245                       jflag = 1  
     246                    ELSE 
     247                       zcoef = 0._wp 
     248                    ENDIF 
     249                    IF(jk1 > nn_wdit) zcoef = 0._wp 
     250                    IF(zflxu1(ji,  jj) > 0._wp) zwdlmtu(ji  ,jj) = zcoef 
     251                    IF(zflxu1(ji-1,jj) < 0._wp) zwdlmtu(ji-1,jj) = zcoef 
     252                    IF(zflxv1(ji,  jj) > 0._wp) zwdlmtv(ji  ,jj) = zcoef 
     253                    IF(zflxv1(ji,jj-1) < 0._wp) zwdlmtv(ji,jj-1) = zcoef 
    258254                 END IF 
    259255              END DO ! ji loop 
     
    270266        
    271267        DO jk = 1, jpkm1 
    272           un(:,:,jk) = un(:,:,jk) * zwdlmtu(:, :)  
    273           vn(:,:,jk) = vn(:,:,jk) * zwdlmtv(:, :)  
     268           un(:,:,jk) = un(:,:,jk) * zwdlmtu(:, :)  
     269           vn(:,:,jk) = vn(:,:,jk) * zwdlmtv(:, :)  
    274270        END DO 
    275271 
    276272        CALL lbc_lnk( un, 'U', -1. ) 
    277273        CALL lbc_lnk( vn, 'V', -1. ) 
    278       ! 
     274        ! 
    279275        un_b(:,:) = un_b(:,:) * zwdlmtu(:, :) 
    280276        vn_b(:,:) = vn_b(:,:) * zwdlmtv(:, :) 
     
    325321      IF( nn_timing == 1 )  CALL timing_start('wad_lmt_bt') 
    326322 
    327       IF(ln_wd_il) THEN 
     323      IF( ln_wd_il ) THEN 
    328324 
    329325        CALL wrk_alloc( jpi, jpj, zflxp, zflxn, zflxu1, zflxv1 ) 
  • branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90

    r8865 r8956  
    122122         IF( .NOT. l_rnfcpl )   rnf(:,:) = rn_rfact * ( sf_rnf(1)%fnow(:,:,1) )       ! updated runoff value at time step kt 
    123123         ! 
    124          !                                                     ! set temperature & salinity content of runoffs 
     124         !                                                           ! set temperature & salinity content of runoffs 
    125125         IF( ln_rnf_tem ) THEN                                       ! use runoffs temperature data 
    126126            rnf_tsc(:,:,jp_tem) = ( sf_t_rnf(1)%fnow(:,:,1) ) * rnf(:,:) * r1_rau0 
     
    133133            END WHERE 
    134134         ELSE                                                        ! use SST as runoffs temperature 
    135          rnf_tsc(:,:,jp_tem) = MAX(sst_m(:,:),0.0_wp) * rnf(:,:) * r1_rau0 !CEOD River is fresh water so must at least be 0 unless we consider ice 
     135            !CEOD River is fresh water so must at least be 0 unless we consider ice 
     136            rnf_tsc(:,:,jp_tem) = MAX(sst_m(:,:),0.0_wp) * rnf(:,:) * r1_rau0 
    136137         ENDIF 
    137138         !                                                           ! use runoffs salinity data 
  • branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90

    r8865 r8956  
    320320                     ztc_f  = ztc_f  - zfact1 * ( psbc_tc(ji,jj,jn) - psbc_tc_b(ji,jj,jn) ) 
    321321                  ENDIF 
    322                   ! Rivers can be not just at the surface must go down to nk_rnd(ji,jj) 
    323322                  IF( ln_rnf_depth ) THEN 
     323                     ! Rivers are not just at the surface must go down to nk_rnf(ji,jj) 
    324324                     IF( mikt(ji,jj) <=jk .and. jk <= nk_rnf(ji,jj)  ) THEN 
    325                       ze3t_f = ze3t_f - zfact2 * ( - (rnf_b(ji,jj)    - rnf(ji,jj)   )  )*(e3t_n(ji,jj,jk)/h_rnf(ji,jj) ) ! as we have sigma can do that here change later 
     325                        ! as we have sigma can do that here change later 
     326                        ze3t_f = ze3t_f - zfact2 * ( - (rnf_b(ji,jj) - rnf(ji,jj)   )  ) & 
     327                    &                            * ( e3t_n(ji,jj,jk) / h_rnf(ji,jj) )  
    326328                     ENDIF 
    327329                  ELSE 
    328                       IF( jk == mikt(ji,jj) ) THEN           ! first level  
    329                          ze3t_f = ze3t_f - zfact2 * ( - (rnf_b(ji,jj)    - rnf(ji,jj)   ) )  
    330                       ENDIF 
     330                     IF( jk == mikt(ji,jj) ) THEN           ! first level  
     331                        ze3t_f = ze3t_f - zfact2 * ( - (rnf_b(ji,jj)    - rnf(ji,jj)   ) )  
     332                     ENDIF 
    331333                  ENDIF 
    332334 
  • branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/TRA/trasbc.F90

    r8870 r8956  
    3434   USE wrk_nemo       ! Memory Allocation 
    3535   USE timing         ! Timing 
    36    USE wet_dry,   ONLY :   ln_wd_il, ln_wd_dl, rn_wdmin1 
     36   USE wet_dry,  ONLY : ll_wd, rn_wdmin1  ! Wetting and drying 
    3737 
    3838   IMPLICIT NONE 
     
    123123      DO jj = 2, jpj 
    124124         DO ji = fs_2, fs_jpim1   ! vector opt. 
    125             IF ( ln_wd_il .or. ln_wd_dl ) THEN    ! If near WAD point limit the flux for now 
     125            IF ( ll_wd ) THEN     ! If near WAD point limit the flux for now 
    126126               IF ( sshn(ji,jj) + ht_0(ji,jj) >  2._wp * rn_wdmin1 ) THEN 
    127127                  sbc_tsc(ji,jj,jp_tem) = r1_rau0_rcp * qns(ji,jj)   ! non solar heat flux 
  • branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/stpctl.F90

    r8870 r8956  
    2222   USE lib_mpp         ! distributed memory computing 
    2323   USE lib_fortran     ! Fortran routines library  
    24    USE wet_dry,  ONLY: ln_wd_il, ln_wd_dl, rn_ssh_ref    ! reference depth for negative bathy 
     24   USE wet_dry,    ONLY: ll_wd, rn_ssh_ref    ! reference depth for negative bathy 
    2525 
    2626   IMPLICIT NONE 
     
    151151      DO jj = 1, jpj 
    152152         DO ji = 1, jpi 
    153             IF( (ln_wd_il .OR. ln_wd_dl)) THEN 
     153            IF( (ll_wd ) THEN 
    154154               IF( tmask(ji,jj,1) == 1) zsshmax = MAX( zsshmax, ABS(sshn(ji,jj)+rn_ssh_ref) ) 
    155155            ELSE 
Note: See TracChangeset for help on using the changeset viewer.