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 10064 for branches/UKMO/CCRS_NUS_MC_STABLE/NEMOGCM/NEMO/OPA_SRC/BDY/bdyini.F90 – NEMO

Ignore:
Timestamp:
2018-08-23T14:34:13+02:00 (6 years ago)
Author:
csanchez
Message:

Added changes from Bijoy and Enda's for sponge layer, no tidal harm, and rimwidth=1

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/CCRS_NUS_MC_STABLE/NEMOGCM/NEMO/OPA_SRC/BDY/bdyini.F90

    r8790 r10064  
    9595      REAL(wp), POINTER, DIMENSION(:,:)       ::   zfmask  ! temporary fmask array excluding coastal boundary condition (shlat) 
    9696 
    97       !! 
     97      !! CEOD sponge 
    9898      NAMELIST/nambdy/ nb_bdy, ln_coords_file, cn_coords_file,                 & 
    9999         &             ln_mask_file, cn_mask_file, cn_dyn2d, nn_dyn2d_dta,     & 
     
    102102         &             cn_ice_lim, nn_ice_lim_dta,                           & 
    103103         &             rn_ice_tem, rn_ice_sal, rn_ice_age,                 & 
    104          &             ln_vol, nn_volctl, nn_rimwidth 
     104         &             ln_vol, nn_volctl, nn_rimwidth,                      & 
     105         &             ln_sponge, rn_sponge !CEOD  
    105106      !! 
    106107      NAMELIST/nambdy_index/ ctypebdy, nbdyind, nbdybeg, nbdyend 
     
    414415        IF(lwp) WRITE(numout,*) '      Width of relaxation zone = ', nn_rimwidth(ib_bdy) 
    415416        IF(lwp) WRITE(numout,*) 
    416  
     417!CEOD 
     418        IF( ln_sponge(ib_bdy) ) THEN                     ! check sponge layer choice 
     419             IF(lwp) WRITE(numout,*) 'Sponge layer applied at open boundaries' 
     420             IF(lwp) WRITE(numout,*) 'Multiplier for diffusion in sponge layer :', rn_sponge 
     421             IF(lwp) WRITE(numout,*) 
     422           ELSE 
     423             IF(lwp) WRITE(numout,*) 'No volume correction applied at open boundaries' 
     424             IF(lwp) WRITE(numout,*) 
     425           ENDIF 
     426! 
    417427      ENDDO 
    418428 
     
    432442        ENDIF 
    433443     ENDIF 
     444     sponge_factor(:,:) = 1.0 !CEOD 
    434445 
    435446      ! ------------------------------------------------- 
     
    11361147            DO ib = 1, idx_bdy(ib_bdy)%nblen(igrd) 
    11371148               nbr => idx_bdy(ib_bdy)%nbr(ib,igrd) 
    1138                idx_bdy(ib_bdy)%nbw(ib,igrd) = 1.- TANH( FLOAT( nbr - 1 ) * 0.5 & 
    1139                                             &  *(10./ FLOAT(nn_rimwidth(ib_bdy))) ) ! JGraham:modified for rim=15 
    1140 !               idx_bdy(ib_bdy)%nbw(ib,igrd) = 1.- TANH( FLOAT( nbr - 1 ) *0.5 )      ! tanh formulation 
     1149!               idx_bdy(ib_bdy)%nbw(ib,igrd) = 1.- TANH( FLOAT( nbr - 1 ) *  0.5  &   
     1150!                                            &  *(10./ FLOAT(nn_rimwidth(ib_bdy))) ) ! JGraham:modified for rim=15 
     1151               idx_bdy(ib_bdy)%nbw(ib,igrd) = 1.- TANH( FLOAT( nbr - 1 ) *0.5 )      ! tanh formulation !CBIJ MC config rim=1 
    11411152!               idx_bdy(ib_bdy)%nbw(ib,igrd) = (FLOAT(nn_rimwidth(ib_bdy)+1-nbr)/FLOAT(nn_rimwidth(ib_bdy)))**2.  ! quadratic 
    11421153!               idx_bdy(ib_bdy)%nbw(ib,igrd) =  FLOAT(nn_rimwidth(ib_bdy)+1-nbr)/FLOAT(nn_rimwidth(ib_bdy))       ! linear 
     
    11551166            END DO 
    11561167         END DO  
     1168      ! Compute multiplier for diffusion for sponge layer !CEOD 
     1169           ! ------------------------------------------------- 
     1170           IF( ln_sponge(ib_bdy) ) THEN 
     1171              igrd=1 
     1172              DO ib = 1, idx_bdy(ib_bdy)%nblen(igrd) 
     1173                 nbi => idx_bdy(ib_bdy)%nbi(ib,igrd) 
     1174                 nbj => idx_bdy(ib_bdy)%nbj(ib,igrd) 
     1175                 nbr => idx_bdy(ib_bdy)%nbr(ib,igrd) 
     1176                 sponge_factor(nbi,nbj) = 1.0 + (rn_sponge-1.0) * ( 1.- TANH( FLOAT( nbr - 1 ) *0.5 ) ) 
     1177                 ! 0.5 factor says how fast tanh goes to 1 - reduce this to have 
     1178                 ! effect on more of the rimwidth 
     1179              END DO 
     1180           ENDIF 
    11571181 
    11581182      ENDDO 
Note: See TracChangeset for help on using the changeset viewer.