Changeset 11549
- Timestamp:
- 2019-09-16T14:48:51+02:00 (5 years ago)
- Location:
- NEMO/branches/2019/dev_r10973_AGRIF-01_jchanut_small_jpi_jpj
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10973_AGRIF-01_jchanut_small_jpi_jpj/cfgs/SHARED/field_def_nemo-oce.xml
r10824 r11549 27 27 <field id="soce" long_name="salinity" standard_name="sea_water_practical_salinity" unit="1e-3" grid_ref="grid_T_3D"/> 28 28 <field id="soce_e3t" long_name="salinity (thickness weighted)" unit="1e-3" grid_ref="grid_T_3D" > soce * e3t </field > 29 30 <!-- AGRIF sponge --> 31 <field id="fsahm_spt" long_name=" AGRIF t-sponge viscosity coefficient" unit="m2/s" /> 29 32 30 33 <!-- t-eddy viscosity coefficients (ldfdyn) --> … … 364 367 <field id="uoces" long_name="ocean transport along i-axis times salinity (CRS)" unit="1e-3*m/s" grid_ref="grid_U_3D" /> 365 368 369 370 <!-- AGRIF sponge --> 371 <field id="fsaht_spu" long_name=" AGRIF u-sponge diffusivity coefficient" unit="m2/s" /> 372 366 373 <!-- u-eddy diffusivity coefficients (available if ln_traldf_OFF=F) --> 367 374 <field id="ahtu_2d" long_name=" surface u-eddy diffusivity coefficient" unit="m2/s or m4/s" /> … … 418 425 <field id="voces" long_name="ocean transport along j-axis times salinity (CRS)" unit="1e-3*m/s" grid_ref="grid_V_3D" /> 419 426 427 <!-- AGRIF sponge --> 428 <field id="fsaht_spv" long_name=" AGRIF v-sponge diffusivity coefficient" unit="m2/s" /> 429 420 430 <!-- v-eddy diffusivity coefficients (available if ln_traldf_OFF=F) --> 421 431 <field id="ahtv_2d" long_name=" surface v-eddy diffusivity coefficient" unit="m2/s or (m4/s)^1/2" /> … … 496 506 497 507 <!-- F grid --> 508 <!-- AGRIF sponge --> 509 <field id="fsahm_spf" long_name=" AGRIF f-sponge viscosity coefficient" unit="m2/s" /> 510 498 511 <!-- f-eddy viscosity coefficients (ldfdyn) --> 499 512 <field id="ahmf_2d" long_name=" surface f-eddy viscosity coefficient" unit="m2/s or m4/s" /> -
NEMO/branches/2019/dev_r10973_AGRIF-01_jchanut_small_jpi_jpj/src/NST/agrif_oce_sponge.F90
r11542 r11549 22 22 USE agrif_oce 23 23 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 24 USE iom 24 25 25 26 IMPLICIT NONE … … 58 59 #endif 59 60 ! 61 CALL iom_put("fsaht_spu", fsaht_spu(:,:)) 62 CALL iom_put("fsaht_spv", fsaht_spv(:,:)) 63 ! 60 64 END SUBROUTINE Agrif_Sponge_Tra 61 65 … … 84 88 Agrif_UseSpecialValue = .FALSE. 85 89 #endif 90 ! 91 CALL iom_put("fsahm_spt", fsahm_spt(:,:)) 92 CALL iom_put("fsahm_spf", fsahm_spf(:,:)) 86 93 ! 87 94 END SUBROUTINE Agrif_Sponge_dyn … … 96 103 REAL(wp) :: z1_ispongearea, z1_jspongearea 97 104 REAL(wp), DIMENSION(jpi,jpj) :: ztabramp 105 REAL(wp), DIMENSION(jpjmax) :: zmskwest, zmskeast 106 REAL(wp), DIMENSION(jpimax) :: zmsknorth, zmsksouth 98 107 !!---------------------------------------------------------------------- 99 108 ! 100 109 #if defined SPONGE || defined SPONGE_TOP 101 110 IF (( .NOT. spongedoneT ).OR.( .NOT. spongedoneU )) THEN 111 ! 112 ! Retrieve masks at open boundaries: 113 114 ! --- West --- ! 115 ztabramp(:,:) = 0._wp 116 ind1 = 1+nbghostcells 117 DO ji = mi0(ind1), mi1(ind1) 118 ztabramp(ji,:) = umask(ji,:,1) 119 END DO 120 ! 121 zmskwest(:) = 0._wp 122 zmskwest(1:jpj) = MAXVAL(ztabramp(:,:), dim=1) 123 124 ! --- East --- ! 125 ztabramp(:,:) = 0._wp 126 ind1 = jpiglo - nbghostcells - 1 127 DO ji = mi0(ind1), mi1(ind1) 128 ztabramp(ji,:) = umask(ji,:,1) 129 END DO 130 ! 131 zmskeast(:) = 0._wp 132 zmskeast(1:jpj) = MAXVAL(ztabramp(:,:), dim=1) 133 134 ! --- South --- ! 135 ztabramp(:,:) = 0._wp 136 ind1 = 1+nbghostcells 137 DO jj = mj0(ind1), mj1(ind1) 138 ztabramp(:,jj) = vmask(:,jj,1) 139 END DO 140 ! 141 zmsksouth(:) = 0._wp 142 zmsksouth(1:jpi) = MAXVAL(ztabramp(:,:), dim=2) 143 144 ! --- North --- ! 145 ztabramp(:,:) = 0._wp 146 ind1 = jpjglo - nbghostcells - 1 147 DO jj = mj0(ind1), mj1(ind1) 148 ztabramp(:,jj) = vmask(:,jj,1) 149 END DO 150 ! 151 zmsknorth(:) = 0._wp 152 zmsknorth(1:jpi) = MAXVAL(ztabramp(:,:), dim=2) 153 154 #if defined key_mpp_mpi 155 CALL mpp_max( 'AGRIF_sponge', zmskwest(:) , jpjmax ) 156 CALL mpp_max( 'AGRIF_Sponge', zmskeast(:) , jpjmax ) 157 CALL mpp_max( 'AGRIF_Sponge', zmsksouth(:), jpimax ) 158 CALL mpp_max( 'AGRIF_Sponge', zmsknorth(:), jpimax ) 159 #endif 160 102 161 ! Define ramp from boundaries towards domain interior at T-points 103 162 ! Store it in ztabramp … … 117 176 DO ji = mi0(ind1), mi1(ind2) 118 177 DO jj = 1, jpj 119 ztabramp(ji,jj) = REAL( ind2 - mig(ji) ) * z1_ispongearea 178 ztabramp(ji,jj) = REAL( ind2 - mig(ji) ) * z1_ispongearea * zmskwest(jj) 179 END DO 180 END DO 181 182 ! ghost cells (cosmetic): 183 ind1 = 1 184 ind2 = nbghostcells 185 DO ji = mi0(ind1), mi1(ind2) 186 DO jj = 1, jpj 187 ztabramp(ji,jj) = zmskwest(jj) 120 188 END DO 121 189 END DO … … 126 194 DO ji = mi0(ind1), mi1(ind2) 127 195 DO jj = 1, jpj 128 ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL( mig(ji) - ind1 ) * z1_ispongearea) 196 ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL( mig(ji) - ind1 ) * z1_ispongearea) * zmskeast(jj) 197 ENDDO 198 END DO 199 200 ! ghost cells (cosmetic): 201 ind1 = jpiglo - nbghostcells + 1 202 ind2 = jpiglo 203 DO ji = mi0(ind1), mi1(ind2) 204 DO jj = 1, jpj 205 ztabramp(ji,jj) = zmskeast(jj) 129 206 ENDDO 130 207 END DO … … 135 212 DO jj = mj0(ind1), mj1(ind2) 136 213 DO ji = 1, jpi 137 ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL( ind2 - mjg(jj) ) * z1_jspongearea) 214 ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL( ind2 - mjg(jj) ) * z1_jspongearea) * zmsksouth(ji) 215 END DO 216 END DO 217 218 ! ghost cells (cosmetic): 219 ind1 = 1 220 ind2 = nbghostcells 221 DO jj = mj0(ind1), mj1(ind2) 222 DO ji = 1, jpi 223 ztabramp(ji,jj) = zmsksouth(ji) 138 224 END DO 139 225 END DO … … 144 230 DO jj = mj0(ind1), mj1(ind2) 145 231 DO ji = 1, jpi 146 ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL( mjg(jj) - ind1 ) * z1_jspongearea) 232 ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL( mjg(jj) - ind1 ) * z1_jspongearea) * zmsknorth(ji) 233 END DO 234 END DO 235 236 ! ghost cells (cosmetic): 237 ind1 = jpjglo - nbghostcells + 1 238 ind2 = jpjglo 239 DO jj = mj0(ind1), mj1(ind2) 240 DO ji = 1, jpi 241 ztabramp(ji,jj) = zmsknorth(ji) 147 242 END DO 148 243 END DO … … 160 255 END DO 161 256 END DO 162 CALL lbc_lnk( 'agrif_ oce_sponge', fsaht_spu, 'U', 1. ) ! Lateral boundary conditions163 CALL lbc_lnk( 'agrif_ oce_sponge', fsaht_spv, 'V', 1. )257 CALL lbc_lnk( 'agrif_Sponge', fsaht_spu, 'U', 1. ) ! Lateral boundary conditions 258 CALL lbc_lnk( 'agrif_Sponge', fsaht_spv, 'V', 1. ) 164 259 165 260 spongedoneT = .TRUE. … … 177 272 END DO 178 273 END DO 179 CALL lbc_lnk( 'agrif_ oce_sponge', fsahm_spt, 'T', 1. ) ! Lateral boundary conditions180 CALL lbc_lnk( 'agrif_ oce_sponge', fsahm_spf, 'F', 1. )274 CALL lbc_lnk( 'agrif_Sponge', fsahm_spt, 'T', 1. ) ! Lateral boundary conditions 275 CALL lbc_lnk( 'agrif_Sponge', fsahm_spf, 'F', 1. ) 181 276 182 277 spongedoneU = .TRUE.
Note: See TracChangeset
for help on using the changeset viewer.