Changeset 13251 for NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/NST/agrif_oce_sponge.F90
- Timestamp:
- 2020-07-05T16:59:00+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/NST/agrif_oce_sponge.F90
r13232 r13251 78 78 zcoef = REAL(Agrif_rhot()-1,wp)/REAL(Agrif_rhot()) 79 79 80 Agrif_SpecialValue =0.80 Agrif_SpecialValue = 0._wp 81 81 Agrif_UseSpecialValue = ln_spc_dyn 82 use_sign_north = .TRUE.83 sign_north = -1.82 use_sign_north = .TRUE. 83 sign_north = -1._wp 84 84 ! 85 85 tabspongedone_u = .FALSE. … … 92 92 ! 93 93 Agrif_UseSpecialValue = .FALSE. 94 use_sign_north = .FALSE.94 use_sign_north = .FALSE. 95 95 #endif 96 96 ! … … 109 109 REAL(wp) :: z1_ispongearea, z1_jspongearea 110 110 REAL(wp), DIMENSION(jpi,jpj) :: ztabramp 111 #if defined key_vertical 112 REAL(wp), DIMENSION(jpi,jpj) :: ztabrampu 113 REAL(wp), DIMENSION(jpi,jpj) :: ztabrampv 114 #endif 111 115 REAL(wp), DIMENSION(jpjmax) :: zmskwest, zmskeast 112 116 REAL(wp), DIMENSION(jpimax) :: zmsknorth, zmsksouth … … 129 133 ! Retrieve masks at open boundaries: 130 134 131 ! --- West --- ! 132 IF( lk_west) THEN 135 IF( lk_west ) THEN ! --- West --- ! 133 136 ztabramp(:,:) = 0._wp 134 137 ind1 = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells … … 139 142 zmskwest(jpj+1:jpjmax) = 0._wp 140 143 ENDIF 141 142 ! --- East --- ! 143 IF( lk_east ) THEN 144 IF( lk_east ) THEN ! --- East --- ! 144 145 ztabramp(:,:) = 0._wp 145 146 ind1 = jpiglo - ( nn_hls + nbghostcells + 1) ! halo + land + nbghostcells … … 150 151 zmskeast(jpj+1:jpjmax) = 0._wp 151 152 ENDIF 152 153 ! --- South --- ! 154 IF( lk_south ) THEN 153 IF( lk_south ) THEN ! --- South --- ! 155 154 ztabramp(:,:) = 0._wp 156 155 ind1 = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells … … 161 160 zmsksouth(jpi+1:jpimax) = 0._wp 162 161 ENDIF 163 164 ! --- North --- ! 165 IF( lk_north) THEN 162 IF( lk_north ) THEN ! --- North --- ! 166 163 ztabramp(:,:) = 0._wp 167 164 ind1 = jpjglo - ( nn_hls + nbghostcells + 1) ! halo + land + nbghostcells … … 188 185 ! Store it in ztabramp 189 186 190 ispongearea = nn_sponge_len * Agrif_irhox()191 z1_ispongearea = 1._wp / REAL( ispongearea )192 jspongearea = nn_sponge_len * Agrif_irhoy()193 z1_jspongearea = 1._wp / REAL( jspongearea )187 ispongearea = nn_sponge_len * Agrif_irhox() 188 z1_ispongearea = 1._wp / REAL( ispongearea, wp ) 189 jspongearea = nn_sponge_len * Agrif_irhoy() 190 z1_jspongearea = 1._wp / REAL( jspongearea, wp ) 194 191 195 192 ztabramp(:,:) = 0._wp … … 199 196 IF ( nbcellsy <= 3 ) jspongearea = -1 200 197 201 ! --- West --- ! 202 IF(lk_west) THEN 198 IF( lk_west ) THEN ! --- West --- ! 203 199 ind1 = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells 204 200 ind2 = nn_hls + 1 + nbghostcells + ispongearea 205 201 DO ji = mi0(ind1), mi1(ind2) 206 202 DO jj = 1, jpj 207 ztabramp(ji,jj) = REAL( ind2 - mig(ji) ) * z1_ispongearea* zmskwest(jj)203 ztabramp(ji,jj) = REAL(ind2 - mig(ji), wp) * z1_ispongearea * zmskwest(jj) 208 204 END DO 209 205 END DO … … 217 213 END DO 218 214 ENDIF 219 220 ! --- East --- ! 221 IF(lk_east) THEN 215 IF( lk_east ) THEN ! --- East --- ! 222 216 ind1 = jpiglo - ( nn_hls + nbghostcells ) - ispongearea 223 217 ind2 = jpiglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1 224 218 DO ji = mi0(ind1), mi1(ind2) 225 219 DO jj = 1, jpj 226 ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL( mig(ji) - ind1 ) * z1_ispongearea) * zmskeast(jj)220 ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL(mig(ji) - ind1, wp) * z1_ispongearea ) * zmskeast(jj) 227 221 END DO 228 222 END DO … … 235 229 END DO 236 230 END DO 237 ENDIF 238 239 ! --- South --- ! 240 IF( lk_south ) THEN 231 ENDIF 232 IF( lk_south ) THEN ! --- South --- ! 241 233 ind1 = nn_hls + 1 + nbghostcells ! halo + land + nbghostcells 242 234 ind2 = nn_hls + 1 + nbghostcells + jspongearea 243 235 DO jj = mj0(ind1), mj1(ind2) 244 236 DO ji = 1, jpi 245 ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL( ind2 - mjg(jj) ) * z1_jspongearea) * zmsksouth(ji)237 ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL(ind2 - mjg(jj), wp) * z1_jspongearea ) * zmsksouth(ji) 246 238 END DO 247 239 END DO … … 255 247 END DO 256 248 ENDIF 257 258 ! --- North --- ! 259 IF( lk_north ) THEN 249 IF( lk_north ) THEN ! --- North --- ! 260 250 ind1 = jpjglo - ( nn_hls + nbghostcells ) - jspongearea 261 251 ind2 = jpjglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1 262 252 DO jj = mj0(ind1), mj1(ind2) 263 253 DO ji = 1, jpi 264 ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL( mjg(jj) - ind1 ) * z1_jspongearea) * zmsknorth(ji)254 ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL(mjg(jj) - ind1, wp) * z1_jspongearea ) * zmsknorth(ji) 265 255 END DO 266 256 END DO … … 333 323 ztabrampu(:,:) = REAL( mbku_parentu(:,:), wp ) 334 324 ztabrampv(:,:) = REAL( mbkv_parentv(:,:), wp ) 335 CALL lbc_lnk_multi( 'Agrif_Sponge', ztabramp, 'T', 1. , ztabrampu, 'U', 1., ztabrampv, 'V', 1.)325 CALL lbc_lnk_multi( 'Agrif_Sponge', ztabramp, 'T', 1._wp, ztabrampu, 'U', 1._wp, ztabrampv, 'V', 1._wp ) 336 326 mbkt_parent(:,:) = NINT( ztabramp (:,:) ) 337 327 mbku_parent(:,:) = NINT( ztabrampu(:,:) )
Note: See TracChangeset
for help on using the changeset viewer.