New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 12495 for NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/NST/agrif_oce_update.F90 – NEMO

Ignore:
Timestamp:
2020-03-02T09:10:34+01:00 (4 years ago)
Author:
smasson
Message:

dev_r12472_ASINTER-05: update to trunk@12493, see #2156

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r12472_ASINTER-05_Masson_CurrentFeedback/src/NST/agrif_oce_update.F90

    r12377 r12495  
    256256      ! 2) BEFORE fields: 
    257257      !------------------ 
    258       IF (.NOT.(lk_agrif_fstep.AND.(neuler==0) )) THEN 
     258      IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler) )) THEN 
    259259         ! 
    260260         ! Vertical scale factor interpolations 
     
    351351         ENDDO 
    352352 
    353          IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN 
     353         IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN 
    354354            ! Add asselin part 
    355355            DO jn = 1,jpts 
     
    361361                           ztnu = tabres_child(ji,jj,jk,jn) * e3t(ji,jj,jk,Kmm_a) 
    362362                           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) )  &  
    364364                                     &        * tmask(ji,jj,jk) / e3t(ji,jj,jk,Kbb_a) 
    365365                        ENDIF 
     
    381381         END DO 
    382382         ! 
    383          IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     383         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    384384            ts(i1:i2,j1:j2,1:jpkm1,1:jpts,Kbb_a)  = ts(i1:i2,j1:j2,1:jpkm1,1:jpts,Kmm_a) 
    385385         ENDIF 
     
    422422         ENDDO 
    423423!< jc tmp 
    424          IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN 
     424         IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN 
    425425            ! Add asselin part 
    426426            DO jn = 1,jpts 
     
    432432                           ztnu = tabres(ji,jj,jk,jn) 
    433433                           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) )  &  
    435435                                     &        * tmask(ji,jj,jk) / e3t(ji,jj,jk,Kbb_a) 
    436436                        ENDIF 
     
    452452         END DO 
    453453         ! 
    454          IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     454         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    455455            ts(i1:i2,j1:j2,k1:k2,1:jpts,Kbb_a)  = ts(i1:i2,j1:j2,k1:k2,1:jpts,Kmm_a) 
    456456         ENDIF 
     
    551551            DO jj=j1,j2 
    552552               DO ji=i1,i2 
    553                   IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN ! Add asselin part 
     553                  IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN ! Add asselin part 
    554554                     zub  = uu(ji,jj,jk,Kbb_a) * e3u(ji,jj,jk,Kbb_a)  ! fse3t_b prior update should be used 
    555555                     zuno = uu(ji,jj,jk,Kmm_a) * e3u(ji,jj,jk,Krhs_a) 
    556556                     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) ) &       
    558558                                    & * umask(ji,jj,jk) / e3u(ji,jj,jk,Kbb_a) 
    559559                  ENDIF 
     
    564564         END DO 
    565565         ! 
    566          IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     566         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    567567            uu(i1:i2,j1:j2,1:jpkm1,Kbb_a)  = uu(i1:i2,j1:j2,1:jpkm1,Kmm_a) 
    568568         ENDIF 
     
    597597                  tabres(ji,jj,jk,1) = tabres(ji,jj,jk,1) * r1_e2u(ji,jj)  
    598598                  ! 
    599                   IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN ! Add asselin part 
     599                  IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN ! Add asselin part 
    600600                     zub  = uu(ji,jj,jk,Kbb_a) * e3u(ji,jj,jk,Kbb_a)  ! fse3t_b prior update should be used 
    601601                     zuno = uu(ji,jj,jk,Kmm_a) * e3u(ji,jj,jk,Krhs_a) 
    602602                     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) ) &       
    604604                                    & * umask(ji,jj,jk) / e3u(ji,jj,jk,Kbb_a) 
    605605                  ENDIF 
     
    610610         END DO 
    611611         ! 
    612          IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     612         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    613613            uu(i1:i2,j1:j2,k1:k2,Kbb_a)  = uu(i1:i2,j1:j2,k1:k2,Kmm_a) 
    614614         ENDIF 
     
    751751            DO jj=j1,j2 
    752752               DO ji=i1,i2 
    753                   IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN ! Add asselin part 
     753                  IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN ! Add asselin part 
    754754                     zvb  = vv(ji,jj,jk,Kbb_a) * e3v(ji,jj,jk,Kbb_a) ! fse3t_b prior update should be used 
    755755                     zvno = vv(ji,jj,jk,Kmm_a) * e3v(ji,jj,jk,Krhs_a) 
    756756                     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) ) &       
    758758                                    & * vmask(ji,jj,jk) / e3v(ji,jj,jk,Kbb_a) 
    759759                  ENDIF 
     
    764764         END DO 
    765765         ! 
    766          IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     766         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    767767            vv(i1:i2,j1:j2,1:jpkm1,Kbb_a)  = vv(i1:i2,j1:j2,1:jpkm1,Kmm_a) 
    768768         ENDIF 
     
    801801                  tabres(ji,jj,jk,1) = tabres(ji,jj,jk,1) * r1_e1v(ji,jj) 
    802802                  ! 
    803                   IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN ! Add asselin part 
     803                  IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN ! Add asselin part 
    804804                     zvb  = vv(ji,jj,jk,Kbb_a) * e3v(ji,jj,jk,Kbb_a) ! fse3t_b prior update should be used 
    805805                     zvno = vv(ji,jj,jk,Kmm_a) * e3v(ji,jj,jk,Krhs_a) 
    806806                     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) ) &       
    808808                                    & * vmask(ji,jj,jk) / e3v(ji,jj,jk,Kbb_a) 
    809809                  ENDIF 
     
    814814         END DO 
    815815         ! 
    816          IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     816         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    817817            vv(i1:i2,j1:j2,k1:k2,Kbb_a)  = vv(i1:i2,j1:j2,k1:k2,Kmm_a) 
    818818         ENDIF 
     
    907907               ! Update barotropic velocities: 
    908908               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 part 
     909                  IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN ! Add asselin part 
    910910                     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) 
    912912                  END IF 
    913913               ENDIF     
     
    928928         END DO 
    929929         ! 
    930          IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     930         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    931931            uu_b(i1:i2,j1:j2,Kbb_a)  = uu_b(i1:i2,j1:j2,Kmm_a) 
    932932         ENDIF 
     
    973973               ! Update barotropic velocities: 
    974974               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 part 
     975                  IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN ! Add asselin part 
    976976                     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) 
    978978                  END IF 
    979979               ENDIF               
     
    994994         END DO 
    995995         ! 
    996          IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     996         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    997997            vv_b(i1:i2,j1:j2,Kbb_a)  = vv_b(i1:i2,j1:j2,Kmm_a) 
    998998         ENDIF 
     
    10211021         END DO 
    10221022      ELSE 
    1023          IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN 
     1023         IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) THEN 
    10241024            DO jj=j1,j2 
    10251025               DO ji=i1,i2 
    10261026                  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) 
    10281028               END DO 
    10291029            END DO 
     
    10361036         END DO 
    10371037         ! 
    1038          IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     1038         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    10391039            ssh(i1:i2,j1:j2,Kbb_a)  = ssh(i1:i2,j1:j2,Kmm_a) 
    10401040         ENDIF 
     
    11171117         IF (western_side) THEN 
    11181118            DO jj=j1,j2 
    1119                zcor = rdt * 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))  
    11201120               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 * zcor 
     1121               IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) ssh(i1  ,jj,Kbb_a) = ssh(i1  ,jj,Kbb_a) + rn_atfp * zcor 
    11221122            END DO 
    11231123         ENDIF 
    11241124         IF (eastern_side) THEN 
    11251125            DO jj=j1,j2 
    1126                zcor = - rdt * 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)) 
    11271127               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 * zcor 
     1128               IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) ssh(i2+1,jj,Kbb_a) = ssh(i2+1,jj,Kbb_a) + rn_atfp * zcor 
    11291129            END DO 
    11301130         ENDIF 
     
    12051205         IF (southern_side) THEN 
    12061206            DO ji=i1,i2 
    1207                zcor = rdt * 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)) 
    12081208               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 * zcor 
     1209               IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) ssh(ji,j1  ,Kbb_a) = ssh(ji,j1,Kbb_a) + rn_atfp * zcor 
    12101210            END DO 
    12111211         ENDIF 
    12121212         IF (northern_side) THEN                
    12131213            DO ji=i1,i2 
    1214                zcor = - rdt * 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)) 
    12151215               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 * zcor 
     1216               IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler))) ssh(ji,j2+1,Kbb_a) = ssh(ji,j2+1,Kbb_a) + rn_atfp * zcor 
    12171217            END DO 
    12181218         ENDIF 
     
    13591359!         hdiv(i1:i2,j1:j2,1:jpkm1)   = e3t(i1:i2,j1:j2,1:jpkm1,Kbb_a) 
    13601360 
    1361          IF (.NOT.(lk_agrif_fstep.AND.(neuler==0) )) THEN 
     1361         IF (.NOT.(lk_agrif_fstep.AND.(l_1st_euler) )) THEN 
    13621362            DO jk = 1, jpkm1 
    13631363               DO jj=j1,j2 
    13641364                  DO ji=i1,i2 
    13651365                     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) ) 
    13671367                  END DO 
    13681368               END DO 
     
    14221422         END DO 
    14231423         ! 
    1424          IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     1424         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    14251425            e3t (i1:i2,j1:j2,1:jpk,Kbb_a)  = e3t (i1:i2,j1:j2,1:jpk,Kmm_a) 
    14261426            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.