- Timestamp:
- 2018-08-23T14:34:13+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/CCRS_NUS_MC_STABLE/NEMOGCM/NEMO/OPA_SRC/BDY/bdyini.F90
r8790 r10064 95 95 REAL(wp), POINTER, DIMENSION(:,:) :: zfmask ! temporary fmask array excluding coastal boundary condition (shlat) 96 96 97 !! 97 !! CEOD sponge 98 98 NAMELIST/nambdy/ nb_bdy, ln_coords_file, cn_coords_file, & 99 99 & ln_mask_file, cn_mask_file, cn_dyn2d, nn_dyn2d_dta, & … … 102 102 & cn_ice_lim, nn_ice_lim_dta, & 103 103 & 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 105 106 !! 106 107 NAMELIST/nambdy_index/ ctypebdy, nbdyind, nbdybeg, nbdyend … … 414 415 IF(lwp) WRITE(numout,*) ' Width of relaxation zone = ', nn_rimwidth(ib_bdy) 415 416 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 ! 417 427 ENDDO 418 428 … … 432 442 ENDIF 433 443 ENDIF 444 sponge_factor(:,:) = 1.0 !CEOD 434 445 435 446 ! ------------------------------------------------- … … 1136 1147 DO ib = 1, idx_bdy(ib_bdy)%nblen(igrd) 1137 1148 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=151140 ! 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 1141 1152 ! idx_bdy(ib_bdy)%nbw(ib,igrd) = (FLOAT(nn_rimwidth(ib_bdy)+1-nbr)/FLOAT(nn_rimwidth(ib_bdy)))**2. ! quadratic 1142 1153 ! idx_bdy(ib_bdy)%nbw(ib,igrd) = FLOAT(nn_rimwidth(ib_bdy)+1-nbr)/FLOAT(nn_rimwidth(ib_bdy)) ! linear … … 1155 1166 END DO 1156 1167 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 1157 1181 1158 1182 ENDDO
Note: See TracChangeset
for help on using the changeset viewer.