Changeset 12489 for NEMO/trunk/src/NST/agrif_oce_update.F90
- Timestamp:
- 2020-02-28T16:55:11+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/NST/agrif_oce_update.F90
r12377 r12489 256 256 ! 2) BEFORE fields: 257 257 !------------------ 258 IF (.NOT.(lk_agrif_fstep.AND.( neuler==0) )) THEN258 IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler) )) THEN 259 259 ! 260 260 ! Vertical scale factor interpolations … … 351 351 ENDDO 352 352 353 IF (.NOT.(lk_agrif_fstep.AND.( neuler==0))) THEN353 IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN 354 354 ! Add asselin part 355 355 DO jn = 1,jpts … … 361 361 ztnu = tabres_child(ji,jj,jk,jn) * e3t(ji,jj,jk,Kmm_a) 362 362 ztno = ts(ji,jj,jk,jn,Kmm_a) * e3t(ji,jj,jk,Krhs_a) 363 ts(ji,jj,jk,jn,Kbb_a) = ( ztb + atfp * ( ztnu - ztno) ) &363 ts(ji,jj,jk,jn,Kbb_a) = ( ztb + rn_atfp * ( ztnu - ztno) ) & 364 364 & * tmask(ji,jj,jk) / e3t(ji,jj,jk,Kbb_a) 365 365 ENDIF … … 381 381 END DO 382 382 ! 383 IF (( neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN383 IF ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 384 384 ts(i1:i2,j1:j2,1:jpkm1,1:jpts,Kbb_a) = ts(i1:i2,j1:j2,1:jpkm1,1:jpts,Kmm_a) 385 385 ENDIF … … 422 422 ENDDO 423 423 !< jc tmp 424 IF (.NOT.(lk_agrif_fstep.AND.( neuler==0))) THEN424 IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN 425 425 ! Add asselin part 426 426 DO jn = 1,jpts … … 432 432 ztnu = tabres(ji,jj,jk,jn) 433 433 ztno = ts(ji,jj,jk,jn,Kmm_a) * e3t(ji,jj,jk,Krhs_a) 434 ts(ji,jj,jk,jn,Kbb_a) = ( ztb + atfp * ( ztnu - ztno) ) &434 ts(ji,jj,jk,jn,Kbb_a) = ( ztb + rn_atfp * ( ztnu - ztno) ) & 435 435 & * tmask(ji,jj,jk) / e3t(ji,jj,jk,Kbb_a) 436 436 ENDIF … … 452 452 END DO 453 453 ! 454 IF (( neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN454 IF ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 455 455 ts(i1:i2,j1:j2,k1:k2,1:jpts,Kbb_a) = ts(i1:i2,j1:j2,k1:k2,1:jpts,Kmm_a) 456 456 ENDIF … … 551 551 DO jj=j1,j2 552 552 DO ji=i1,i2 553 IF (.NOT.(lk_agrif_fstep.AND.( neuler==0))) THEN ! Add asselin part553 IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN ! Add asselin part 554 554 zub = uu(ji,jj,jk,Kbb_a) * e3u(ji,jj,jk,Kbb_a) ! fse3t_b prior update should be used 555 555 zuno = uu(ji,jj,jk,Kmm_a) * e3u(ji,jj,jk,Krhs_a) 556 556 zunu = tabres_child(ji,jj,jk) * e3u(ji,jj,jk,Kmm_a) 557 uu(ji,jj,jk,Kbb_a) = ( zub + atfp * ( zunu - zuno) ) &557 uu(ji,jj,jk,Kbb_a) = ( zub + rn_atfp * ( zunu - zuno) ) & 558 558 & * umask(ji,jj,jk) / e3u(ji,jj,jk,Kbb_a) 559 559 ENDIF … … 564 564 END DO 565 565 ! 566 IF (( neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN566 IF ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 567 567 uu(i1:i2,j1:j2,1:jpkm1,Kbb_a) = uu(i1:i2,j1:j2,1:jpkm1,Kmm_a) 568 568 ENDIF … … 597 597 tabres(ji,jj,jk,1) = tabres(ji,jj,jk,1) * r1_e2u(ji,jj) 598 598 ! 599 IF (.NOT.(lk_agrif_fstep.AND.( neuler==0))) THEN ! Add asselin part599 IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN ! Add asselin part 600 600 zub = uu(ji,jj,jk,Kbb_a) * e3u(ji,jj,jk,Kbb_a) ! fse3t_b prior update should be used 601 601 zuno = uu(ji,jj,jk,Kmm_a) * e3u(ji,jj,jk,Krhs_a) 602 602 zunu = tabres(ji,jj,jk,1) 603 uu(ji,jj,jk,Kbb_a) = ( zub + atfp * ( zunu - zuno) ) &603 uu(ji,jj,jk,Kbb_a) = ( zub + rn_atfp * ( zunu - zuno) ) & 604 604 & * umask(ji,jj,jk) / e3u(ji,jj,jk,Kbb_a) 605 605 ENDIF … … 610 610 END DO 611 611 ! 612 IF (( neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN612 IF ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 613 613 uu(i1:i2,j1:j2,k1:k2,Kbb_a) = uu(i1:i2,j1:j2,k1:k2,Kmm_a) 614 614 ENDIF … … 751 751 DO jj=j1,j2 752 752 DO ji=i1,i2 753 IF (.NOT.(lk_agrif_fstep.AND.( neuler==0))) THEN ! Add asselin part753 IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN ! Add asselin part 754 754 zvb = vv(ji,jj,jk,Kbb_a) * e3v(ji,jj,jk,Kbb_a) ! fse3t_b prior update should be used 755 755 zvno = vv(ji,jj,jk,Kmm_a) * e3v(ji,jj,jk,Krhs_a) 756 756 zvnu = tabres_child(ji,jj,jk) * e3v(ji,jj,jk,Kmm_a) 757 vv(ji,jj,jk,Kbb_a) = ( zvb + atfp * ( zvnu - zvno) ) &757 vv(ji,jj,jk,Kbb_a) = ( zvb + rn_atfp * ( zvnu - zvno) ) & 758 758 & * vmask(ji,jj,jk) / e3v(ji,jj,jk,Kbb_a) 759 759 ENDIF … … 764 764 END DO 765 765 ! 766 IF (( neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN766 IF ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 767 767 vv(i1:i2,j1:j2,1:jpkm1,Kbb_a) = vv(i1:i2,j1:j2,1:jpkm1,Kmm_a) 768 768 ENDIF … … 801 801 tabres(ji,jj,jk,1) = tabres(ji,jj,jk,1) * r1_e1v(ji,jj) 802 802 ! 803 IF (.NOT.(lk_agrif_fstep.AND.( neuler==0))) THEN ! Add asselin part803 IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN ! Add asselin part 804 804 zvb = vv(ji,jj,jk,Kbb_a) * e3v(ji,jj,jk,Kbb_a) ! fse3t_b prior update should be used 805 805 zvno = vv(ji,jj,jk,Kmm_a) * e3v(ji,jj,jk,Krhs_a) 806 806 zvnu = tabres(ji,jj,jk,1) 807 vv(ji,jj,jk,Kbb_a) = ( zvb + atfp * ( zvnu - zvno) ) &807 vv(ji,jj,jk,Kbb_a) = ( zvb + rn_atfp * ( zvnu - zvno) ) & 808 808 & * vmask(ji,jj,jk) / e3v(ji,jj,jk,Kbb_a) 809 809 ENDIF … … 814 814 END DO 815 815 ! 816 IF (( neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN816 IF ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 817 817 vv(i1:i2,j1:j2,k1:k2,Kbb_a) = vv(i1:i2,j1:j2,k1:k2,Kmm_a) 818 818 ENDIF … … 907 907 ! Update barotropic velocities: 908 908 IF ( .NOT.ln_dynspg_ts .OR. (ln_dynspg_ts.AND.(.NOT.ln_bt_fw)) ) THEN 909 IF (.NOT.(lk_agrif_fstep.AND.( neuler==0))) THEN ! Add asselin part909 IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN ! Add asselin part 910 910 zcorr = (tabres(ji,jj) - uu_b(ji,jj,Kmm_a) * hu(ji,jj,Krhs_a)) * r1_hu(ji,jj,Kbb_a) 911 uu_b(ji,jj,Kbb_a) = uu_b(ji,jj,Kbb_a) + atfp * zcorr * umask(ji,jj,1)911 uu_b(ji,jj,Kbb_a) = uu_b(ji,jj,Kbb_a) + rn_atfp * zcorr * umask(ji,jj,1) 912 912 END IF 913 913 ENDIF … … 928 928 END DO 929 929 ! 930 IF (( neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN930 IF ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 931 931 uu_b(i1:i2,j1:j2,Kbb_a) = uu_b(i1:i2,j1:j2,Kmm_a) 932 932 ENDIF … … 973 973 ! Update barotropic velocities: 974 974 IF ( .NOT.ln_dynspg_ts .OR. (ln_dynspg_ts.AND.(.NOT.ln_bt_fw)) ) THEN 975 IF (.NOT.(lk_agrif_fstep.AND.( neuler==0))) THEN ! Add asselin part975 IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN ! Add asselin part 976 976 zcorr = (tabres(ji,jj) - vv_b(ji,jj,Kmm_a) * hv(ji,jj,Krhs_a)) * r1_hv(ji,jj,Kbb_a) 977 vv_b(ji,jj,Kbb_a) = vv_b(ji,jj,Kbb_a) + atfp * zcorr * vmask(ji,jj,1)977 vv_b(ji,jj,Kbb_a) = vv_b(ji,jj,Kbb_a) + rn_atfp * zcorr * vmask(ji,jj,1) 978 978 END IF 979 979 ENDIF … … 994 994 END DO 995 995 ! 996 IF (( neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN996 IF ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 997 997 vv_b(i1:i2,j1:j2,Kbb_a) = vv_b(i1:i2,j1:j2,Kmm_a) 998 998 ENDIF … … 1021 1021 END DO 1022 1022 ELSE 1023 IF (.NOT.(lk_agrif_fstep.AND.( neuler==0))) THEN1023 IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN 1024 1024 DO jj=j1,j2 1025 1025 DO ji=i1,i2 1026 1026 ssh(ji,jj,Kbb_a) = ssh(ji,jj,Kbb_a) & 1027 & + atfp * ( tabres(ji,jj) - ssh(ji,jj,Kmm_a) ) * tmask(ji,jj,1)1027 & + rn_atfp * ( tabres(ji,jj) - ssh(ji,jj,Kmm_a) ) * tmask(ji,jj,1) 1028 1028 END DO 1029 1029 END DO … … 1036 1036 END DO 1037 1037 ! 1038 IF (( neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN1038 IF ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 1039 1039 ssh(i1:i2,j1:j2,Kbb_a) = ssh(i1:i2,j1:j2,Kmm_a) 1040 1040 ENDIF … … 1117 1117 IF (western_side) THEN 1118 1118 DO jj=j1,j2 1119 zcor = r dt * r1_e1e2t(i1 ,jj) * e2u(i1,jj) * (ub2_b(i1,jj)-tabres(i1,jj))1119 zcor = rn_Dt * r1_e1e2t(i1 ,jj) * e2u(i1,jj) * (ub2_b(i1,jj)-tabres(i1,jj)) 1120 1120 ssh(i1 ,jj,Kmm_a) = ssh(i1 ,jj,Kmm_a) + zcor 1121 IF (.NOT.(lk_agrif_fstep.AND.( neuler==0))) ssh(i1 ,jj,Kbb_a) = ssh(i1 ,jj,Kbb_a) +atfp * zcor1121 IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) ssh(i1 ,jj,Kbb_a) = ssh(i1 ,jj,Kbb_a) + rn_atfp * zcor 1122 1122 END DO 1123 1123 ENDIF 1124 1124 IF (eastern_side) THEN 1125 1125 DO jj=j1,j2 1126 zcor = - r dt * r1_e1e2t(i2+1,jj) * e2u(i2,jj) * (ub2_b(i2,jj)-tabres(i2,jj))1126 zcor = - rn_Dt * r1_e1e2t(i2+1,jj) * e2u(i2,jj) * (ub2_b(i2,jj)-tabres(i2,jj)) 1127 1127 ssh(i2+1,jj,Kmm_a) = ssh(i2+1,jj,Kmm_a) + zcor 1128 IF (.NOT.(lk_agrif_fstep.AND.( neuler==0))) ssh(i2+1,jj,Kbb_a) = ssh(i2+1,jj,Kbb_a) +atfp * zcor1128 IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) ssh(i2+1,jj,Kbb_a) = ssh(i2+1,jj,Kbb_a) + rn_atfp * zcor 1129 1129 END DO 1130 1130 ENDIF … … 1205 1205 IF (southern_side) THEN 1206 1206 DO ji=i1,i2 1207 zcor = r dt * r1_e1e2t(ji,j1 ) * e1v(ji,j1 ) * (vb2_b(ji,j1)-tabres(ji,j1))1207 zcor = rn_Dt * r1_e1e2t(ji,j1 ) * e1v(ji,j1 ) * (vb2_b(ji,j1)-tabres(ji,j1)) 1208 1208 ssh(ji,j1 ,Kmm_a) = ssh(ji,j1 ,Kmm_a) + zcor 1209 IF (.NOT.(lk_agrif_fstep.AND.( neuler==0))) ssh(ji,j1 ,Kbb_a) = ssh(ji,j1,Kbb_a) +atfp * zcor1209 IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) ssh(ji,j1 ,Kbb_a) = ssh(ji,j1,Kbb_a) + rn_atfp * zcor 1210 1210 END DO 1211 1211 ENDIF 1212 1212 IF (northern_side) THEN 1213 1213 DO ji=i1,i2 1214 zcor = - r dt * r1_e1e2t(ji,j2+1) * e1v(ji,j2 ) * (vb2_b(ji,j2)-tabres(ji,j2))1214 zcor = - rn_Dt * r1_e1e2t(ji,j2+1) * e1v(ji,j2 ) * (vb2_b(ji,j2)-tabres(ji,j2)) 1215 1215 ssh(ji,j2+1,Kmm_a) = ssh(ji,j2+1,Kmm_a) + zcor 1216 IF (.NOT.(lk_agrif_fstep.AND.( neuler==0))) ssh(ji,j2+1,Kbb_a) = ssh(ji,j2+1,Kbb_a) +atfp * zcor1216 IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) ssh(ji,j2+1,Kbb_a) = ssh(ji,j2+1,Kbb_a) + rn_atfp * zcor 1217 1217 END DO 1218 1218 ENDIF … … 1359 1359 ! hdiv(i1:i2,j1:j2,1:jpkm1) = e3t(i1:i2,j1:j2,1:jpkm1,Kbb_a) 1360 1360 1361 IF (.NOT.(lk_agrif_fstep.AND.( neuler==0) )) THEN1361 IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler) )) THEN 1362 1362 DO jk = 1, jpkm1 1363 1363 DO jj=j1,j2 1364 1364 DO ji=i1,i2 1365 1365 e3t(ji,jj,jk,Kbb_a) = e3t(ji,jj,jk,Kbb_a) & 1366 & + atfp * ( ptab(ji,jj,jk) - e3t(ji,jj,jk,Kmm_a) )1366 & + rn_atfp * ( ptab(ji,jj,jk) - e3t(ji,jj,jk,Kmm_a) ) 1367 1367 END DO 1368 1368 END DO … … 1422 1422 END DO 1423 1423 ! 1424 IF (( neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN1424 IF ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 1425 1425 e3t (i1:i2,j1:j2,1:jpk,Kbb_a) = e3t (i1:i2,j1:j2,1:jpk,Kmm_a) 1426 1426 e3w (i1:i2,j1:j2,1:jpk,Kbb_a) = e3w (i1:i2,j1:j2,1:jpk,Kmm_a)
Note: See TracChangeset
for help on using the changeset viewer.