- Timestamp:
- 2020-04-08T21:37:59+02:00 (4 years ago)
- Location:
- NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev _r11615_ENHANCE-04_namelists_as_internalfiles_agrif@HEAD ext/AGRIF5 ^/vendors/AGRIF/dev@HEAD ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 9 # SETTE 10 ^/utils/CI/sette@HEAD sette
-
- Property svn:externals
-
NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/DOM/domvvl.F90
r12680 r12724 247 247 IF( ln_vvl_ztilde_as_zstar ) THEN ! z-star emulation using z-tile 248 248 frq_rst_e3t(:,:) = 0._wp !Ignore namelist settings 249 frq_rst_hdv(:,:) = 1._wp / r dt249 frq_rst_hdv(:,:) = 1._wp / rn_Dt 250 250 ENDIF 251 251 IF ( ln_vvl_zstar_at_eqtor ) THEN ! use z-star in vicinity of the Equator … … 259 259 ! values inside the equatorial band (ztilde as zstar) 260 260 frq_rst_e3t(ji,jj) = 0.0_wp 261 frq_rst_hdv(ji,jj) = 1.0_wp / r dt261 frq_rst_hdv(ji,jj) = 1.0_wp / rn_Dt 262 262 ELSE ! transition band (2.5 to 6 degrees N/S) 263 263 ! ! (linearly transition from z-tilde to z-star) … … 265 265 & * ( 1.0_wp - COS( rad*(ABS(gphit(ji,jj))-2.5_wp) & 266 266 & * 180._wp / 3.5_wp ) ) 267 frq_rst_hdv(ji,jj) = (1.0_wp / r dt) &268 & + ( frq_rst_hdv(ji,jj)-(1.e0_wp / r dt) )*0.5_wp &267 frq_rst_hdv(ji,jj) = (1.0_wp / rn_Dt) & 268 & + ( frq_rst_hdv(ji,jj)-(1.e0_wp / rn_Dt) )*0.5_wp & 269 269 & * ( 1._wp - COS( rad*(ABS(gphit(ji,jj))-2.5_wp) & 270 270 & * 180._wp / 3.5_wp ) ) … … 276 276 ij0 = 128 ; ij1 = 135 ; 277 277 frq_rst_e3t( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 0.0_wp 278 frq_rst_hdv( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 1.e0_wp / r dt278 frq_rst_hdv( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 1.e0_wp / rn_Dt 279 279 ENDIF 280 280 ENDIF … … 331 331 INTEGER :: ji, jj, jk ! dummy loop indices 332 332 INTEGER , DIMENSION(3) :: ijk_max, ijk_min ! temporary integers 333 REAL(wp) :: z 2dt, z_tmin, z_tmax! local scalars333 REAL(wp) :: z_tmin, z_tmax ! local scalars 334 334 LOGICAL :: ll_do_bclinic ! local logical 335 335 REAL(wp), DIMENSION(jpi,jpj) :: zht, z_scale, zwu, zwv, zhdiv … … 385 385 IF( kt > nit000 ) THEN 386 386 DO jk = 1, jpkm1 387 hdiv_lf(:,:,jk) = hdiv_lf(:,:,jk) - r dt * frq_rst_hdv(:,:) &387 hdiv_lf(:,:,jk) = hdiv_lf(:,:,jk) - rn_Dt * frq_rst_hdv(:,:) & 388 388 & * ( hdiv_lf(:,:,jk) - e3t(:,:,jk,Kmm) * ( hdiv(:,:,jk) - zhdiv(:,:) ) ) 389 389 END DO … … 442 442 ! 4 - Time stepping of baroclinic scale factors 443 443 ! --------------------------------------------- 444 ! Leapfrog time stepping445 ! ~~~~~~~~~~~~~~~~~~~~~~446 IF( neuler == 0 .AND. kt == nit000 ) THEN447 z2dt = rdt448 ELSE449 z2dt = 2.0_wp * rdt450 ENDIF451 444 CALL lbc_lnk( 'domvvl', tilde_e3t_a(:,:,:), 'T', 1._wp ) 452 tilde_e3t_a(:,:,:) = tilde_e3t_b(:,:,:) + z2dt * tmask(:,:,:) * tilde_e3t_a(:,:,:)445 tilde_e3t_a(:,:,:) = tilde_e3t_b(:,:,:) + rDt * tmask(:,:,:) * tilde_e3t_a(:,:,:) 453 446 454 447 ! Maximum deformation control … … 636 629 ! - ML - e3(t/u/v)_b are allready computed in dynnxt. 637 630 IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN 638 IF( neuler == 0 .AND. kt == nit000) THEN631 IF( l_1st_euler ) THEN 639 632 tilde_e3t_b(:,:,:) = tilde_e3t_n(:,:,:) 640 633 ELSE 641 634 tilde_e3t_b(:,:,:) = tilde_e3t_n(:,:,:) & 642 & + atfp * ( tilde_e3t_b(:,:,:) - 2.0_wp * tilde_e3t_n(:,:,:) + tilde_e3t_a(:,:,:) )635 & + rn_atfp * ( tilde_e3t_b(:,:,:) - 2.0_wp * tilde_e3t_n(:,:,:) + tilde_e3t_a(:,:,:) ) 643 636 ENDIF 644 637 tilde_e3t_n(:,:,:) = tilde_e3t_a(:,:,:) … … 833 826 e3t(:,:,:,Kbb) = e3t_0(:,:,:) 834 827 END WHERE 835 IF( neuler == 0) THEN828 IF( l_1st_euler ) THEN 836 829 e3t(:,:,:,Kbb) = e3t(:,:,:,Kmm) 837 830 ENDIF … … 839 832 IF(lwp) write(numout,*) 'dom_vvl_rst WARNING : e3t(:,:,:,Kmm) not found in restart files' 840 833 IF(lwp) write(numout,*) 'e3t_n set equal to e3t_b.' 841 IF(lwp) write(numout,*) ' neuler is forced to 0'834 IF(lwp) write(numout,*) 'l_1st_euler is forced to true' 842 835 CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t(:,:,:,Kbb), ldxios = lrxios ) 843 836 e3t(:,:,:,Kmm) = e3t(:,:,:,Kbb) 844 neuler = 0837 l_1st_euler = .true. 845 838 ELSE IF( id2 > 0 ) THEN 846 839 IF(lwp) write(numout,*) 'dom_vvl_rst WARNING : e3t(:,:,:,Kbb) not found in restart files' 847 840 IF(lwp) write(numout,*) 'e3t_b set equal to e3t_n.' 848 IF(lwp) write(numout,*) ' neuler is forced to 0'841 IF(lwp) write(numout,*) 'l_1st_euler is forced to true' 849 842 CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t(:,:,:,Kmm), ldxios = lrxios ) 850 843 e3t(:,:,:,Kbb) = e3t(:,:,:,Kmm) 851 neuler = 0844 l_1st_euler = .true. 852 845 ELSE 853 846 IF(lwp) write(numout,*) 'dom_vvl_rst WARNING : e3t(:,:,:,Kmm) not found in restart file' 854 847 IF(lwp) write(numout,*) 'Compute scale factor from sshn' 855 IF(lwp) write(numout,*) ' neuler is forced to 0'848 IF(lwp) write(numout,*) 'l_1st_euler is forced to true' 856 849 DO jk = 1, jpk 857 850 e3t(:,:,jk,Kmm) = e3t_0(:,:,jk) * ( ht_0(:,:) + ssh(:,:,Kmm) ) & … … 860 853 END DO 861 854 e3t(:,:,:,Kbb) = e3t(:,:,:,Kmm) 862 neuler = 0855 l_1st_euler = .true. 863 856 ENDIF 864 857 ! ! ----------- ! … … 1020 1013 WRITE(numout,*) ' rn_rst_e3t = 0.e0' 1021 1014 WRITE(numout,*) ' hard-wired : z-tilde cutoff frequency of low-pass filter (days)' 1022 WRITE(numout,*) ' rn_lf_cutoff = 1.0/r dt'1015 WRITE(numout,*) ' rn_lf_cutoff = 1.0/rn_Dt' 1023 1016 ELSE 1024 1017 WRITE(numout,*) ' z-tilde to zstar restoration timescale (days) rn_rst_e3t = ', rn_rst_e3t
Note: See TracChangeset
for help on using the changeset viewer.