Changeset 7988 for branches/2017/dev_r7963_nemo_v3_6_AGRIF-3_AGRIFVVL/NEMOGCM/NEMO/NST_SRC/agrif_opa_update.F90
- Timestamp:
- 2017-04-28T17:39:22+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r7963_nemo_v3_6_AGRIF-3_AGRIFVVL/NEMOGCM/NEMO/NST_SRC/agrif_opa_update.F90
r7977 r7988 228 228 & Agrif_Fixed(), 'Step', Agrif_Nb_Step() 229 229 230 ! Save "old" scale factor (prior update) for subsequent asselin correction 231 ! of prognostic variables (needed to update initial state only) 232 fse3u_a(:,:,:) = fse3u_n(:,:,:) 233 fse3v_a(:,:,:) = fse3v_n(:,:,:) 234 hu_a(:,:) = hu(:,:) 235 hv_a(:,:) = hv(:,:) 236 237 ! Vertical scale factor interpolations 238 ! ------------------------------------ 239 ! 230 240 CALL dom_vvl_interpol( fse3t_n(:,:,:), fse3u_n(:,:,:), 'U' ) 231 241 CALL dom_vvl_interpol( fse3t_n(:,:,:), fse3v_n(:,:,:), 'V' ) … … 310 320 DO ji=i1,i2 311 321 IF( tabres(ji,jj,jk,jn) .NE. 0. ) THEN 312 tsb(ji,jj,jk,jn) = tsb(ji,jj,jk,jn) &313 & + atfp * ( tabres(ji,jj,jk,jn)&314 315 & * tmask(ji,jj,jk) / fse3t_b(ji,jj,jk)322 tsb(ji,jj,jk,jn) = ( tsb(ji,jj,jk,jn)*fse3t_b(ji,jj,jk) & ! jc: should be fse3t_b prior update 323 & + atfp * ( tabres(ji,jj,jk,jn) & 324 & - tsn(ji,jj,jk,jn)*fse3t_a(ji,jj,jk) ) & 325 & * tmask(ji,jj,jk) ) / fse3t_b(ji,jj,jk) 316 326 ENDIF 317 327 ENDDO … … 367 377 ! 368 378 IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN ! Add asselin part 369 ub(ji,jj,jk) = ub(ji,jj,jk) &370 & + atfp * ( tabres(ji,jj,jk) & 379 ub(ji,jj,jk) = ( ub(ji,jj,jk)*fse3u_b(ji,jj,jk) & ! jc: should be fse3u_b prior update 380 & + atfp * ( tabres(ji,jj,jk) & 371 381 & - un(ji,jj,jk)*fse3u_a(ji,jj,jk) ) & 372 & * umask(ji,jj,jk) / fse3u_b(ji,jj,jk)382 & * umask(ji,jj,jk) ) / fse3u_b(ji,jj,jk) 373 383 ENDIF 374 384 ! … … 413 423 ! 414 424 IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN ! Add asselin part 415 vb(ji,jj,jk) = vb(ji,jj,jk) &425 vb(ji,jj,jk) = ( vb(ji,jj,jk)*fse3v_b(ji,jj,jk) & ! jc: should be fse3v_b prior update 416 426 & + atfp * ( tabres(ji,jj,jk) & 417 427 & - vn(ji,jj,jk)*fse3v_a(ji,jj,jk) ) & 418 & * vmask(ji,jj,jk) / fse3v_b(ji,jj,jk)428 & * vmask(ji,jj,jk) ) / fse3v_b(ji,jj,jk) 419 429 ENDIF 420 430 ! … … 809 819 fsdept_b(i1:i2,j1:j2,1) = 0.5_wp * fse3w_b(i1:i2,j1:j2,1) 810 820 ! 811 DO jk = 2, jpk m1821 DO jk = 2, jpk 812 822 DO jj = j1,j2 813 823 DO ji = i1,i2 … … 823 833 END DO 824 834 END DO 835 ! 825 836 ENDIF 826 837 ! 827 838 ! 2) Updates at now time step: 828 839 ! ---------------------------- 840 ! 841 ! Save "old" scale factor (prior update) for subsequent asselin correction 842 ! of prognostic variables (needed to update initial state only) 843 fse3t_a(i1:i2,j1:j2,k1:k2) = fse3t_n(i1:i2,j1:j2,k1:k2) 829 844 ! 830 845 ! Update vertical scale factor at T-points: … … 843 858 fsde3w_n(i1:i2,j1:j2,1) = fsdept_n(i1:i2,j1:j2,1) - (ht(i1:i2,j1:j2)-ht_0(i1:i2,j1:j2)) ! Last term in the rhs is ssh 844 859 ! 845 DO jk = 2, jpk m1860 DO jk = 2, jpk 846 861 DO jj = j1,j2 847 862 DO ji = i1,i2
Note: See TracChangeset
for help on using the changeset viewer.