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 14267 for NEMO – NEMO

Changeset 14267 for NEMO


Ignore:
Timestamp:
2021-01-05T19:58:20+01:00 (3 years ago)
Author:
dbyrne
Message:

Boundary SSH switch and offset implemented

Location:
NEMO/branches/NERC/NEMO_4.0.4_CO9_package_tides/src/OCE/BDY
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/NERC/NEMO_4.0.4_CO9_package_tides/src/OCE/BDY/bdy_oce.F90

    r14075 r14267  
    4343      INTEGER          , DIMENSION(2)   ::  nread 
    4444      LOGICAL                           ::  lneed_ssh 
     45      !--- davbyr 
     46      LOGICAL                           ::  lforced_ssh  
     47     !--- END davbyr 
    4548      LOGICAL                           ::  lneed_dyn2d 
    4649      LOGICAL                           ::  lneed_dyn3d 
     
    117120   REAL(wp), DIMENSION(jp_bdy) ::   rice_hpnd               !: pond thick. of incoming sea ice 
    118121   REAL(wp), DIMENSION(jp_bdy) ::   rice_hlid               !: pond lid thick. of incoming sea ice 
     122    
     123   !  davbyr  
     124   LOGICAL, DIMENSION(jp_bdy) ::   ln_ssh_bdy               !: =T USE SSH BDY - name list switch 
     125   REAL(wp), DIMENSION(jp_bdy) ::  rn_ssh_shift             !: =F SHIFT SSH AT A BORDER BY rn_ssh_shift m_ 
     126   !  END davbyr 
    119127   ! 
    120128   !!---------------------------------------------------------------------- 
  • NEMO/branches/NERC/NEMO_4.0.4_CO9_package_tides/src/OCE/BDY/bdydta.F90

    r14075 r14267  
    362362         ENDIF 
    363363      ENDIF 
     364       
     365      ! davbyr - add a shift to the boundary + free elevation Enda, JT from NEMO RAN 3.6 
     366      DO jbdy = 1, nb_bdy 
     367         IF( dta_bdy(jbdy)%lneed_ssh ) THEN 
     368             nblen => idx_bdy(jbdy)%nblenrim 
     369             igrd  = 1 
     370             DO ib = 1, nblen(igrd) 
     371                ii = idx_bdy(jbdy)%nbi(ib,igrd) 
     372                ij = idx_bdy(jbdy)%nbj(ib,igrd) 
     373                dta_bdy(jbdy)%ssh(ib) = dta_bdy(jbdy)%ssh(ib) + rn_ssh_shift(jbdy) * tmask(ii,ij,1) 
     374                IF( .NOT. dta_bdy(jbdy)%lforced_ssh ) dta_bdy(jbdy)%ssh(ib) = sshn(ii,ij) * tmask(ii,ij,1) 
     375             END DO 
     376         END IF 
     377      END DO 
     378      !--- END davbyr 
     379       
    364380      ! 
    365381      IF( ln_timing )   CALL timing_stop('bdy_dta') 
  • NEMO/branches/NERC/NEMO_4.0.4_CO9_package_tides/src/OCE/BDY/bdyini.F90

    r14250 r14267  
    6969         &             ln_vol, nn_volctl, nn_rimwidth 
    7070         ! 
     71!     davbyr Propagating ENDA's stuff from 3.6 
     72      NAMELIST/nambdy_ssh/ ln_ssh_bdy, rn_ssh_shift 
     73      INTEGER  ::   ib_bdy 
     74!     END davbyr 
    7175      INTEGER  ::   ios                 ! Local integer output status for namelist read 
    7276      !!---------------------------------------------------------------------- 
     
    97101902   IF( ios >  0 )   CALL ctl_nam ( ios , 'nambdy in configuration namelist' ) 
    98102      IF(lwm) WRITE ( numond, nambdy ) 
     103       
     104      ! davbyr Propagating ENDA's stuff from 3.6 
     105      REWIND( numnam_ref )              ! Namelist nambdy in reference namelist :Unstructured open boundaries 
     106      READ  ( numnam_ref, nambdy_ssh, IOSTAT = ios, ERR = 905) 
     107905   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_ssh in reference namelist' ) 
     108 
     109      REWIND( numnam_cfg )              ! Namelist nambdy in configuration namelist :Unstructured open boundaries 
     110      READ  ( numnam_cfg, nambdy_ssh, IOSTAT = ios, ERR = 906) 
     111906   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_ssh in configuration namelist' ) 
     112      IF(lwm) WRITE ( numond, nambdy_ssh ) 
     113 
     114      IF(lwp) WRITE(numout,*) 
     115      IF(lwp) WRITE(numout,*) 'nambdy_ssh : use of ssh boundaries' 
     116      IF(lwp) WRITE(numout,*) '~~~~~~~~' 
     117      IF(lwp) WRITE(numout,*) '      ln_ssh_bdy: ' 
     118      DO ib_bdy = 1,nb_bdy 
     119        IF(lwp) WRITE(numout,*) '      ln_ssh_bdy  (',ib_bdy,'): ',ln_ssh_bdy(ib_bdy) 
     120      IF(lwp) WRITE(numout,*) '      rn_ssh_shift: ' 
     121      ENDDO 
     122      DO ib_bdy = 1,nb_bdy 
     123        IF(lwp) WRITE(numout,*) '      rn_ssh_shift(',ib_bdy,'): ',rn_ssh_shift(ib_bdy) 
     124      ENDDO 
     125      IF(lwp) WRITE(numout,*) '~~~~~~~~' 
     126      IF(lwp) WRITE(numout,*) 
     127!     END davbyr 
    99128 
    100129      IF( .NOT. Agrif_Root() ) ln_bdy = .FALSE.   ! forced for Agrif children 
     
    201230         dta_bdy(ib_bdy)%lneed_ssh   = cn_dyn2d(ib_bdy) == 'flather' 
    202231         dta_bdy(ib_bdy)%lneed_dyn2d = cn_dyn2d(ib_bdy) /= 'none' 
     232 
     233       ! davbyr propagating JT override dta_bdy(ib_bdy)%ll_ssh with namelist value (ln_ssh_bdy) 
     234         dta_bdy(ib_bdy)%lforced_ssh = ln_ssh_bdy(ib_bdy) 
     235         IF(lwp) WRITE(numout,*) 'nambdy_ssh : use of ssh boundaries' 
     236         IF(lwp) WRITE(numout,*) '~~~~~~~~' 
     237         IF(lwp) WRITE(numout,*) '      ib_bdy: ',ib_bdy 
     238         IF(lwp) WRITE(numout,*) '      dta_bdy(ib_bdy)%lneed_ssh  : ',dta_bdy(ib_bdy)%lneed_ssh 
     239         IF(lwp) WRITE(numout,*) '      dta_bdy(ib_bdy)%lforced_ssh: ',dta_bdy(ib_bdy)%lforced_ssh 
     240         IF(lwp) WRITE(numout,*) '~~~~~~~~' 
     241         ! END davbyr 
    203242 
    204243         IF( lwp .AND. dta_bdy(ib_bdy)%lneed_dyn2d ) THEN 
Note: See TracChangeset for help on using the changeset viewer.