Changeset 11099 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps_rewrite_time_filterswap/src/NST
- Timestamp:
- 2019-06-11T15:59:58+02:00 (5 years ago)
- Location:
- NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps_rewrite_time_filterswap/src/NST
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps_rewrite_time_filterswap/src/NST/agrif_oce_interp.F90
r11053 r11099 115 115 END DO 116 116 DO jj = 1, jpj 117 uu_b(ibdy1:ibdy2,jj,Krhs_a) = uu_b(ibdy1:ibdy2,jj,Krhs_a) * r1_hu _a(ibdy1:ibdy2,jj)117 uu_b(ibdy1:ibdy2,jj,Krhs_a) = uu_b(ibdy1:ibdy2,jj,Krhs_a) * r1_hu(ibdy1:ibdy2,jj,Krhs_a) 118 118 END DO 119 119 ENDIF … … 135 135 END DO 136 136 DO jj=1,jpj 137 zub(ibdy1:ibdy2,jj) = zub(ibdy1:ibdy2,jj) * r1_hu _a(ibdy1:ibdy2,jj)137 zub(ibdy1:ibdy2,jj) = zub(ibdy1:ibdy2,jj) * r1_hu(ibdy1:ibdy2,jj,Krhs_a) 138 138 END DO 139 139 … … 154 154 END DO 155 155 DO jj = 1, jpj 156 zvb(ibdy1:ibdy2,jj) = zvb(ibdy1:ibdy2,jj) * r1_hv _a(ibdy1:ibdy2,jj)156 zvb(ibdy1:ibdy2,jj) = zvb(ibdy1:ibdy2,jj) * r1_hv(ibdy1:ibdy2,jj,Krhs_a) 157 157 END DO 158 158 DO jk = 1, jpkm1 … … 186 186 END DO 187 187 DO jj = 1, jpj 188 uu_b(ibdy1:ibdy2,jj,Krhs_a) = uu_b(ibdy1:ibdy2,jj,Krhs_a) * r1_hu _a(ibdy1:ibdy2,jj)188 uu_b(ibdy1:ibdy2,jj,Krhs_a) = uu_b(ibdy1:ibdy2,jj,Krhs_a) * r1_hu(ibdy1:ibdy2,jj,Krhs_a) 189 189 END DO 190 190 ENDIF … … 206 206 END DO 207 207 DO jj=1,jpj 208 zub(ibdy1:ibdy2,jj) = zub(ibdy1:ibdy2,jj) * r1_hu _a(ibdy1:ibdy2,jj)208 zub(ibdy1:ibdy2,jj) = zub(ibdy1:ibdy2,jj) * r1_hu(ibdy1:ibdy2,jj,Krhs_a) 209 209 END DO 210 210 … … 227 227 END DO 228 228 DO jj = 1, jpj 229 zvb(ibdy1:ibdy2,jj) = zvb(ibdy1:ibdy2,jj) * r1_hv _a(ibdy1:ibdy2,jj)229 zvb(ibdy1:ibdy2,jj) = zvb(ibdy1:ibdy2,jj) * r1_hv(ibdy1:ibdy2,jj,Krhs_a) 230 230 END DO 231 231 DO jk = 1, jpkm1 … … 259 259 END DO 260 260 DO ji=1,jpi 261 vv_b(ji,jbdy1:jbdy2,Krhs_a) = vv_b(ji,jbdy1:jbdy2,Krhs_a) * r1_hv _a(ji,jbdy1:jbdy2)261 vv_b(ji,jbdy1:jbdy2,Krhs_a) = vv_b(ji,jbdy1:jbdy2,Krhs_a) * r1_hv(ji,jbdy1:jbdy2,Krhs_a) 262 262 END DO 263 263 ENDIF … … 279 279 END DO 280 280 DO ji = 1, jpi 281 zvb(ji,jbdy1:jbdy2) = zvb(ji,jbdy1:jbdy2) * r1_hv _a(ji,jbdy1:jbdy2)281 zvb(ji,jbdy1:jbdy2) = zvb(ji,jbdy1:jbdy2) * r1_hv(ji,jbdy1:jbdy2,Krhs_a) 282 282 END DO 283 283 … … 298 298 END DO 299 299 DO ji = 1, jpi 300 zub(ji,jbdy1:jbdy2) = zub(ji,jbdy1:jbdy2) * r1_hu _a(ji,jbdy1:jbdy2)300 zub(ji,jbdy1:jbdy2) = zub(ji,jbdy1:jbdy2) * r1_hu(ji,jbdy1:jbdy2,Krhs_a) 301 301 END DO 302 302 … … 331 331 END DO 332 332 DO ji=1,jpi 333 vv_b(ji,jbdy1:jbdy2,Krhs_a) = vv_b(ji,jbdy1:jbdy2,Krhs_a) * r1_hv _a(ji,jbdy1:jbdy2)333 vv_b(ji,jbdy1:jbdy2,Krhs_a) = vv_b(ji,jbdy1:jbdy2,Krhs_a) * r1_hv(ji,jbdy1:jbdy2,Krhs_a) 334 334 END DO 335 335 ENDIF … … 351 351 END DO 352 352 DO ji = 1, jpi 353 zvb(ji,jbdy1:jbdy2) = zvb(ji,jbdy1:jbdy2) * r1_hv _a(ji,jbdy1:jbdy2)353 zvb(ji,jbdy1:jbdy2) = zvb(ji,jbdy1:jbdy2) * r1_hv(ji,jbdy1:jbdy2,Krhs_a) 354 354 END DO 355 355 … … 372 372 END DO 373 373 DO ji = 1, jpi 374 zub(ji,jbdy1:jbdy2) = zub(ji,jbdy1:jbdy2) * r1_hu _a(ji,jbdy1:jbdy2)374 zub(ji,jbdy1:jbdy2) = zub(ji,jbdy1:jbdy2) * r1_hu(ji,jbdy1:jbdy2,Krhs_a) 375 375 END DO 376 376 … … 1060 1060 ! 1061 1061 IF( before ) THEN 1062 ptab(i1:i2,j1:j2) = e2u(i1:i2,j1:j2) * hu _n(i1:i2,j1:j2) * uu_b(i1:i2,j1:j2,Kmm_a)1062 ptab(i1:i2,j1:j2) = e2u(i1:i2,j1:j2) * hu(i1:i2,j1:j2,Kmm_a) * uu_b(i1:i2,j1:j2,Kmm_a) 1063 1063 ELSE 1064 1064 western_side = (nb == 1).AND.(ndir == 1) … … 1113 1113 ! 1114 1114 IF( before ) THEN 1115 ptab(i1:i2,j1:j2) = e1v(i1:i2,j1:j2) * hv _n(i1:i2,j1:j2) * vv_b(i1:i2,j1:j2,Kmm_a)1115 ptab(i1:i2,j1:j2) = e1v(i1:i2,j1:j2) * hv(i1:i2,j1:j2,Kmm_a) * vv_b(i1:i2,j1:j2,Kmm_a) 1116 1116 ELSE 1117 1117 western_side = (nb == 1).AND.(ndir == 1) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps_rewrite_time_filterswap/src/NST/agrif_oce_update.F90
r11053 r11099 234 234 ! uu(:,:,:,Krhs_a) = e3u(:,:,:,Kbb_a) 235 235 ! vv(:,:,:,Krhs_a) = e3v(:,:,:,Kbb_a) 236 hu _a(:,:) = hu_n(:,:)237 hv _a(:,:) = hv_n(:,:)236 hu(:,:,Krhs_a) = hu(:,:,Kmm_a) 237 hv(:,:,Krhs_a) = hv(:,:,Kmm_a) 238 238 239 239 ! 1) NOW fields … … 251 251 ! Update total depths: 252 252 ! -------------------- 253 hu _n(:,:) = 0._wp ! Ocean depth at U-points254 hv _n(:,:) = 0._wp ! Ocean depth at V-points253 hu(:,:,Kmm_a) = 0._wp ! Ocean depth at U-points 254 hv(:,:,Kmm_a) = 0._wp ! Ocean depth at V-points 255 255 DO jk = 1, jpkm1 256 hu _n(:,:) = hu_n(:,:) + e3u(:,:,jk,Kmm_a) * umask(:,:,jk)257 hv _n(:,:) = hv_n(:,:) + e3v(:,:,jk,Kmm_a) * vmask(:,:,jk)256 hu(:,:,Kmm_a) = hu(:,:,Kmm_a) + e3u(:,:,jk,Kmm_a) * umask(:,:,jk) 257 hv(:,:,Kmm_a) = hv(:,:,Kmm_a) + e3v(:,:,jk,Kmm_a) * vmask(:,:,jk) 258 258 END DO 259 259 ! ! Inverse of the local depth 260 r1_hu _n(:,:) = ssumask(:,:) / ( hu_n(:,:) + 1._wp - ssumask(:,:) )261 r1_hv _n(:,:) = ssvmask(:,:) / ( hv_n(:,:) + 1._wp - ssvmask(:,:) )260 r1_hu(:,:,Kmm_a) = ssumask(:,:) / ( hu(:,:,Kmm_a) + 1._wp - ssumask(:,:) ) 261 r1_hv(:,:,Kmm_a) = ssvmask(:,:) / ( hv(:,:,Kmm_a) + 1._wp - ssvmask(:,:) ) 262 262 263 263 … … 276 276 ! Update total depths: 277 277 ! -------------------- 278 hu _b(:,:) = 0._wp ! Ocean depth at U-points279 hv _b(:,:) = 0._wp ! Ocean depth at V-points278 hu(:,:,Kbb_a) = 0._wp ! Ocean depth at U-points 279 hv(:,:,Kbb_a) = 0._wp ! Ocean depth at V-points 280 280 DO jk = 1, jpkm1 281 hu _b(:,:) = hu_b(:,:) + e3u(:,:,jk,Kbb_a) * umask(:,:,jk)282 hv _b(:,:) = hv_b(:,:) + e3v(:,:,jk,Kbb_a) * vmask(:,:,jk)281 hu(:,:,Kbb_a) = hu(:,:,Kbb_a) + e3u(:,:,jk,Kbb_a) * umask(:,:,jk) 282 hv(:,:,Kbb_a) = hv(:,:,Kbb_a) + e3v(:,:,jk,Kbb_a) * vmask(:,:,jk) 283 283 END DO 284 284 ! ! Inverse of the local depth 285 r1_hu _b(:,:) = ssumask(:,:) / ( hu_b(:,:) + 1._wp - ssumask(:,:) )286 r1_hv _b(:,:) = ssvmask(:,:) / ( hv_b(:,:) + 1._wp - ssvmask(:,:) )285 r1_hu(:,:,Kbb_a) = ssumask(:,:) / ( hu(:,:,Kbb_a) + 1._wp - ssumask(:,:) ) 286 r1_hv(:,:,Kbb_a) = ssvmask(:,:) / ( hv(:,:,Kbb_a) + 1._wp - ssvmask(:,:) ) 287 287 ENDIF 288 288 ! … … 632 632 IF (western_side) THEN 633 633 DO jj=j1,j2 634 zcor = uu_b(i1-1,jj,Kmm_a) * hu _a(i1-1,jj) * r1_hu_n(i1-1,jj) - uu_b(i1-1,jj,Kmm_a)634 zcor = uu_b(i1-1,jj,Kmm_a) * hu(i1-1,jj,Krhs_a) * r1_hu(i1-1,jj,Kmm_a) - uu_b(i1-1,jj,Kmm_a) 635 635 uu_b(i1-1,jj,Kmm_a) = uu_b(i1-1,jj,Kmm_a) + zcor 636 636 DO jk=1,jpkm1 … … 642 642 IF (eastern_side) THEN 643 643 DO jj=j1,j2 644 zcor = uu_b(i2+1,jj,Kmm_a) * hu _a(i2+1,jj) * r1_hu_n(i2+1,jj) - uu_b(i2+1,jj,Kmm_a)644 zcor = uu_b(i2+1,jj,Kmm_a) * hu(i2+1,jj,Krhs_a) * r1_hu(i2+1,jj,Kmm_a) - uu_b(i2+1,jj,Kmm_a) 645 645 uu_b(i2+1,jj,Kmm_a) = uu_b(i2+1,jj,Kmm_a) + zcor 646 646 DO jk=1,jpkm1 … … 822 822 IF (southern_side) THEN 823 823 DO ji=i1,i2 824 zcor = vv_b(ji,j1-1,Kmm_a) * hv _a(ji,j1-1) * r1_hv_n(ji,j1-1) - vv_b(ji,j1-1,Kmm_a)824 zcor = vv_b(ji,j1-1,Kmm_a) * hv(ji,j1-1,Krhs_a) * r1_hv(ji,j1-1,Kmm_a) - vv_b(ji,j1-1,Kmm_a) 825 825 vv_b(ji,j1-1,Kmm_a) = vv_b(ji,j1-1,Kmm_a) + zcor 826 826 DO jk=1,jpkm1 … … 832 832 IF (northern_side) THEN 833 833 DO ji=i1,i2 834 zcor = vv_b(ji,j2+1,Kmm_a) * hv _a(ji,j2+1) * r1_hv_n(ji,j2+1) - vv_b(ji,j2+1,Kmm_a)834 zcor = vv_b(ji,j2+1,Kmm_a) * hv(ji,j2+1,Krhs_a) * r1_hv(ji,j2+1,Kmm_a) - vv_b(ji,j2+1,Kmm_a) 835 835 vv_b(ji,j2+1,Kmm_a) = vv_b(ji,j2+1,Kmm_a) + zcor 836 836 DO jk=1,jpkm1 … … 862 862 DO jj=j1,j2 863 863 DO ji=i1,i2 864 tabres(ji,jj) = zrhoy * uu_b(ji,jj,Kmm_a) * hu _n(ji,jj) * e2u(ji,jj)864 tabres(ji,jj) = zrhoy * uu_b(ji,jj,Kmm_a) * hu(ji,jj,Kmm_a) * e2u(ji,jj) 865 865 END DO 866 866 END DO … … 876 876 END DO 877 877 ! 878 zcorr = (tabres(ji,jj) - spgu(ji,jj)) * r1_hu _n(ji,jj)878 zcorr = (tabres(ji,jj) - spgu(ji,jj)) * r1_hu(ji,jj,Kmm_a) 879 879 DO jk=1,jpkm1 880 880 uu(ji,jj,jk,Kmm_a) = uu(ji,jj,jk,Kmm_a) + zcorr * umask(ji,jj,jk) … … 884 884 IF ( .NOT.ln_dynspg_ts .OR. (ln_dynspg_ts.AND.(.NOT.ln_bt_fw)) ) THEN 885 885 IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN ! Add asselin part 886 zcorr = (tabres(ji,jj) - uu_b(ji,jj,Kmm_a) * hu _a(ji,jj)) * r1_hu_b(ji,jj)886 zcorr = (tabres(ji,jj) - uu_b(ji,jj,Kmm_a) * hu(ji,jj,Krhs_a)) * r1_hu(ji,jj,Kbb_a) 887 887 uu_b(ji,jj,Kbb_a) = uu_b(ji,jj,Kbb_a) + atfp * zcorr * umask(ji,jj,1) 888 888 END IF 889 889 ENDIF 890 uu_b(ji,jj,Kmm_a) = tabres(ji,jj) * r1_hu _n(ji,jj) * umask(ji,jj,1)890 uu_b(ji,jj,Kmm_a) = tabres(ji,jj) * r1_hu(ji,jj,Kmm_a) * umask(ji,jj,1) 891 891 ! 892 892 ! Correct "before" velocities to hold correct bt component: … … 896 896 END DO 897 897 ! 898 zcorr = uu_b(ji,jj,Kbb_a) - spgu(ji,jj) * r1_hu _b(ji,jj)898 zcorr = uu_b(ji,jj,Kbb_a) - spgu(ji,jj) * r1_hu(ji,jj,Kbb_a) 899 899 DO jk=1,jpkm1 900 900 uu(ji,jj,jk,Kbb_a) = uu(ji,jj,jk,Kbb_a) + zcorr * umask(ji,jj,jk) … … 928 928 DO jj=j1,j2 929 929 DO ji=i1,i2 930 tabres(ji,jj) = zrhox * vv_b(ji,jj,Kmm_a) * hv _n(ji,jj) * e1v(ji,jj)930 tabres(ji,jj) = zrhox * vv_b(ji,jj,Kmm_a) * hv(ji,jj,Kmm_a) * e1v(ji,jj) 931 931 END DO 932 932 END DO … … 942 942 END DO 943 943 ! 944 zcorr = (tabres(ji,jj) - spgv(ji,jj)) * r1_hv _n(ji,jj)944 zcorr = (tabres(ji,jj) - spgv(ji,jj)) * r1_hv(ji,jj,Kmm_a) 945 945 DO jk=1,jpkm1 946 946 vv(ji,jj,jk,Kmm_a) = vv(ji,jj,jk,Kmm_a) + zcorr * vmask(ji,jj,jk) … … 950 950 IF ( .NOT.ln_dynspg_ts .OR. (ln_dynspg_ts.AND.(.NOT.ln_bt_fw)) ) THEN 951 951 IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN ! Add asselin part 952 zcorr = (tabres(ji,jj) - vv_b(ji,jj,Kmm_a) * hv _a(ji,jj)) * r1_hv_b(ji,jj)952 zcorr = (tabres(ji,jj) - vv_b(ji,jj,Kmm_a) * hv(ji,jj,Krhs_a)) * r1_hv(ji,jj,Kbb_a) 953 953 vv_b(ji,jj,Kbb_a) = vv_b(ji,jj,Kbb_a) + atfp * zcorr * vmask(ji,jj,1) 954 954 END IF 955 955 ENDIF 956 vv_b(ji,jj,Kmm_a) = tabres(ji,jj) * r1_hv _n(ji,jj) * vmask(ji,jj,1)956 vv_b(ji,jj,Kmm_a) = tabres(ji,jj) * r1_hv(ji,jj,Kmm_a) * vmask(ji,jj,1) 957 957 ! 958 958 ! Correct "before" velocities to hold correct bt component: … … 962 962 END DO 963 963 ! 964 zcorr = vv_b(ji,jj,Kbb_a) - spgv(ji,jj) * r1_hv _b(ji,jj)964 zcorr = vv_b(ji,jj,Kbb_a) - spgv(ji,jj) * r1_hv(ji,jj,Kbb_a) 965 965 DO jk=1,jpkm1 966 966 vv(ji,jj,jk,Kbb_a) = vv(ji,jj,jk,Kbb_a) + zcorr * vmask(ji,jj,jk) … … 1373 1373 ! 1374 1374 ! Update total depth: 1375 ht _n(i1:i2,j1:j2) = 0._wp1375 ht(i1:i2,j1:j2) = 0._wp 1376 1376 DO jk = 1, jpkm1 1377 ht _n(i1:i2,j1:j2) = ht_n(i1:i2,j1:j2) + e3t(i1:i2,j1:j2,jk,Kmm_a) * tmask(i1:i2,j1:j2,jk)1377 ht(i1:i2,j1:j2) = ht(i1:i2,j1:j2) + e3t(i1:i2,j1:j2,jk,Kmm_a) * tmask(i1:i2,j1:j2,jk) 1378 1378 END DO 1379 1379 ! … … 1382 1382 gdept(i1:i2,j1:j2,1,Kmm_a) = 0.5_wp * e3w(i1:i2,j1:j2,1,Kmm_a) 1383 1383 gdepw(i1:i2,j1:j2,1,Kmm_a) = 0.0_wp 1384 gde3w(i1:i2,j1:j2,1) = gdept(i1:i2,j1:j2,1,Kmm_a) - (ht _n(i1:i2,j1:j2)-ht_0(i1:i2,j1:j2)) ! Last term in the rhs is ssh1384 gde3w(i1:i2,j1:j2,1) = gdept(i1:i2,j1:j2,1,Kmm_a) - (ht(i1:i2,j1:j2)-ht_0(i1:i2,j1:j2)) ! Last term in the rhs is ssh 1385 1385 ! 1386 1386 DO jk = 2, jpk … … 1393 1393 gdept(ji,jj,jk,Kmm_a) = zcoef * ( gdepw(ji,jj,jk ,Kmm_a) + 0.5 * e3w(ji,jj,jk,Kmm_a)) & 1394 1394 & + (1-zcoef) * ( gdept(ji,jj,jk-1,Kmm_a) + e3w(ji,jj,jk,Kmm_a)) 1395 gde3w(ji,jj,jk) = gdept(ji,jj,jk,Kmm_a) - (ht _n(ji,jj)-ht_0(ji,jj)) ! Last term in the rhs is ssh1395 gde3w(ji,jj,jk) = gdept(ji,jj,jk,Kmm_a) - (ht(ji,jj)-ht_0(ji,jj)) ! Last term in the rhs is ssh 1396 1396 END DO 1397 1397 END DO
Note: See TracChangeset
for help on using the changeset viewer.