Changeset 11802 for NEMO/branches/2019/dev_r11233_AGRIF-05_jchanut_vert_coord_interp/src/NST/agrif_oce_interp.F90
- Timestamp:
- 2019-10-25T17:15:20+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11233_AGRIF-05_jchanut_vert_coord_interp/src/NST/agrif_oce_interp.F90
r11769 r11802 719 719 tsa(ji,jj,:,:) = 0._wp 720 720 N_in = mbkt_parent(ji,jj) 721 IF ( tmask(ji,jj,1) == 0._wp) N_in = 0 721 722 zhtot = 0._wp 722 723 DO jk=1,N_in !k2 = jpk of parent grid … … 833 834 N_in = mbku_parent(ji,jj) 834 835 zhtot = 0._wp 836 IF ( umask(ji,jj,1) == 0._wp) N_in = 0 835 837 DO jk=1,N_in 836 838 IF (jk==N_in) THEN … … 928 930 va(ji,jj,:) = 0._wp 929 931 N_in = mbkv_parent(ji,jj) 932 IF ( vmask(ji,jj,1) == 0._wp) N_in = 0 930 933 zhtot = 0._wp 931 934 DO jk=1,N_in … … 1276 1279 REAL(wp),DIMENSION(i1:i2,j1:j2,k1:k2,m1:m2), INTENT(inout) :: ptab 1277 1280 LOGICAL , INTENT(in ) :: before 1278 REAL(wp), DIMENSION(k1:k2) :: tabin, h_in 1279 REAL(wp), DIMENSION(1:jpk) :: h_out 1280 INTEGER :: N_in, N_out, ji, jj, jk 1281 ! 1282 INTEGER :: ji, jj, jk 1283 INTEGER :: N_in, N_out 1284 REAL(wp), DIMENSION(k1:k2) :: tabin, z_in 1285 REAL(wp), DIMENSION(1:jpk) :: z_out 1281 1286 !!---------------------------------------------------------------------- 1282 1287 ! … … 1289 1294 END DO 1290 1295 END DO 1291 #ifdef key_vertical 1296 1297 # if defined key_vertical 1298 ! Interpolate thicknesses 1299 ! Warning: these are masked, hence extrapolated prior interpolation. 1292 1300 DO jk=k1,k2 1293 1301 DO jj=j1,j2 1294 1302 DO ji=i1,i2 1295 ptab(ji,jj,jk,2) = wmask(ji,jj,jk) * e3w_n(ji,jj,jk)1303 ptab(ji,jj,jk,2) = tmask(ji,jj,jk) * e3t_n(ji,jj,jk) 1296 1304 END DO 1297 1305 END DO 1298 1306 END DO 1299 #endif 1307 1308 ! Extrapolate thicknesses in partial bottom cells: 1309 ! Set them to Agrif_SpecialValue (0.). Correct bottom thicknesses are retrieved later on 1310 IF (ln_zps) THEN 1311 DO jj=j1,j2 1312 DO ji=i1,i2 1313 jk = mbkt(ji,jj) 1314 ptab(ji,jj,jk,2) = 0._wp 1315 END DO 1316 END DO 1317 END IF 1318 1319 ! Save ssh at last level: 1320 IF (.NOT.ln_linssh) THEN 1321 ptab(i1:i2,j1:j2,k2,2) = sshn(i1:i2,j1:j2)*tmask(i1:i2,j1:j2,1) 1322 ELSE 1323 ptab(i1:i2,j1:j2,k2,2) = 0._wp 1324 END IF 1325 # endif 1300 1326 ELSE 1301 1327 #ifdef key_vertical 1302 avm_k(i1:i2,j1:j2,1:jpk) = 0. 1303 DO jj=j1,j2 1304 DO ji=i1,i2 1305 N_in = 0 1306 DO jk=k1,k2 !k2 = jpk of parent grid 1307 IF (ptab(ji,jj,jk,2) == 0) EXIT 1308 N_in = N_in + 1 1309 tabin(jk) = ptab(ji,jj,jk,1) 1310 h_in(N_in) = ptab(ji,jj,jk,2) 1328 IF (ln_linssh) ptab(i1:i2,j1:j2,k2,2) = 0._wp 1329 avm_k(i1:i2,j1:j2,k1:k2) = 0._wp 1330 1331 DO jj = j1, j2 1332 DO ji =i1, i2 1333 N_in = mbkt_parent(ji,jj) 1334 IF ( tmask(ji,jj,1) == 0._wp) N_in = 0 1335 z_in(N_in+1) = ht0_parent(ji,jj) + ptab(ji,jj,k2,2) 1336 DO jk = N_in, 1, -1 ! Parent vertical grid 1337 z_in(jk) = z_in(jk+1) - ptab(ji,jj,jk,2) 1338 tabin(jk) = ptab(ji,jj,jk,1) 1311 1339 END DO 1312 1340 N_out = 0 1313 DO jk=1,jpk ! jpk of child grid 1314 IF (wmask(ji,jj,jk) == 0) EXIT 1341 z_out(1) = 0._wp 1342 DO jk = 2, jpk ! Child vertical grid 1343 IF (tmask(ji,jj,jk) == 0._wp) EXIT 1315 1344 N_out = N_out + 1 1316 h_out(jk) = e3t_n(ji,jj,jk)1345 z_out(jk) = z_out(jk-1) + e3t_n(ji,jj,jk-1) 1317 1346 ENDDO 1318 IF (N_in > 0) THEN1319 CALL re constructandremap(tabin(1:N_in),h_in,avm_k(ji,jj,1:N_out),h_out,N_in,N_out,1)1347 IF (N_in*N_out > 0) THEN 1348 CALL remap_linear(tabin(1:N_in),z_in(1:N_in),avm_k(ji,jj,1:N_out),z_out(1:N_out),N_in,N_out,1) 1320 1349 ENDIF 1321 1350 ENDDO
Note: See TracChangeset
for help on using the changeset viewer.