- 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/DYN/dynatf.F90
r12680 r12724 104 104 !! arrays to start the next time step: 105 105 !! (puu(Kmm),pvv(Kmm)) = (puu(Kmm),pvv(Kmm)) 106 !! + atfp [ (puu(Kbb),pvv(Kbb)) + (puu(Kaa),pvv(Kaa)) - 2 (puu(Kmm),pvv(Kmm)) ]106 !! + rn_atfp [ (puu(Kbb),pvv(Kbb)) + (puu(Kaa),pvv(Kaa)) - 2 (puu(Kmm),pvv(Kmm)) ] 107 107 !! Note that with flux form advection and non linear free surface, 108 108 !! the time filter is applied on thickness weighted velocity. … … 174 174 ! 175 175 IF( l_trddyn ) THEN ! prepare the atf trend computation + some diagnostics 176 z1_2dt = 1._wp / (2. * rdt) ! Euler or leap-frog time step177 IF( neuler == 0 .AND. kt == nit000 ) z1_2dt = 1._wp / rdt178 176 ! 179 177 ! ! Kinetic energy and Conversion … … 181 179 ! 182 180 IF( ln_dyn_trd ) THEN ! 3D output: total momentum trends 183 zua(:,:,:) = ( puu(:,:,:,Kaa) - puu(:,:,:,Kbb) ) * z1_2dt184 zva(:,:,:) = ( pvv(:,:,:,Kaa) - pvv(:,:,:,Kbb) ) * z1_2dt181 zua(:,:,:) = ( puu(:,:,:,Kaa) - puu(:,:,:,Kbb) ) * r1_Dt 182 zva(:,:,:) = ( pvv(:,:,:,Kaa) - pvv(:,:,:,Kbb) ) * r1_Dt 185 183 CALL iom_put( "utrd_tot", zua ) ! total momentum trends, except the asselin time filter 186 184 CALL iom_put( "vtrd_tot", zva ) … … 194 192 ! Time filter and swap of dynamics arrays 195 193 ! ------------------------------------------ 196 197 IF( .NOT. ( neuler == 0 .AND. kt == nit000 ) ) THEN !* Leap-Frog : Asselin time filter194 195 IF( .NOT. l_1st_euler ) THEN !* Leap-Frog : Asselin time filter 198 196 ! ! =============! 199 197 IF( ln_linssh ) THEN ! Fixed volume ! 200 198 ! ! =============! 201 199 DO_3D_11_11( 1, jpkm1 ) 202 puu(ji,jj,jk,Kmm) = puu(ji,jj,jk,Kmm) + atfp * ( puu(ji,jj,jk,Kbb) - 2._wp * puu(ji,jj,jk,Kmm) + puu(ji,jj,jk,Kaa) )203 pvv(ji,jj,jk,Kmm) = pvv(ji,jj,jk,Kmm) + atfp * ( pvv(ji,jj,jk,Kbb) - 2._wp * pvv(ji,jj,jk,Kmm) + pvv(ji,jj,jk,Kaa) )200 puu(ji,jj,jk,Kmm) = puu(ji,jj,jk,Kmm) + rn_atfp * ( puu(ji,jj,jk,Kbb) - 2._wp * puu(ji,jj,jk,Kmm) + puu(ji,jj,jk,Kaa) ) 201 pvv(ji,jj,jk,Kmm) = pvv(ji,jj,jk,Kmm) + rn_atfp * ( pvv(ji,jj,jk,Kbb) - 2._wp * pvv(ji,jj,jk,Kmm) + pvv(ji,jj,jk,Kaa) ) 204 202 END_3D 205 203 ! ! ================! … … 210 208 ALLOCATE( ze3t_f(jpi,jpj,jpk), zwfld(jpi,jpj) ) 211 209 DO jk = 1, jpkm1 212 ze3t_f(:,:,jk) = pe3t(:,:,jk,Kmm) + atfp * ( pe3t(:,:,jk,Kbb) - 2._wp * pe3t(:,:,jk,Kmm) + pe3t(:,:,jk,Kaa) )210 ze3t_f(:,:,jk) = pe3t(:,:,jk,Kmm) + rn_atfp * ( pe3t(:,:,jk,Kbb) - 2._wp * pe3t(:,:,jk,Kmm) + pe3t(:,:,jk,Kaa) ) 213 211 END DO 214 212 ! Add volume filter correction: compatibility with tracer advection scheme 215 213 ! => time filter + conservation correction 216 zcoef = atfp * rdt * r1_rau0214 zcoef = rn_atfp * rn_Dt * r1_rho0 217 215 zwfld(:,:) = emp_b(:,:) - emp(:,:) 218 216 IF ( ln_rnf ) zwfld(:,:) = zwfld(:,:) - ( rnf_b(:,:) - rnf(:,:) ) … … 226 224 ! to manage rnf, isf and possibly in the futur icb, tide water glacier (...) 227 225 ! ...(kt, coef, ktop, kbot, hz, fwf_b, fwf) 228 IF ( ln_isf ) CALL isf_dynatf( kt, Kmm, ze3t_f, atfp * rdt )226 IF ( ln_isf ) CALL isf_dynatf( kt, Kmm, ze3t_f, rn_atfp * rn_Dt ) 229 227 ! 230 228 pe3t(:,:,1:jpkm1,Kmm) = ze3t_f(:,:,1:jpkm1) ! filtered scale factor at T-points … … 235 233 CALL dom_vvl_interpol( pe3t(:,:,:,Kmm), pe3v(:,:,:,Kmm), 'V' ) 236 234 DO_3D_11_11( 1, jpkm1 ) 237 puu(ji,jj,jk,Kmm) = puu(ji,jj,jk,Kmm) + atfp * ( puu(ji,jj,jk,Kbb) - 2._wp * puu(ji,jj,jk,Kmm) + puu(ji,jj,jk,Kaa) )238 pvv(ji,jj,jk,Kmm) = pvv(ji,jj,jk,Kmm) + atfp * ( pvv(ji,jj,jk,Kbb) - 2._wp * pvv(ji,jj,jk,Kmm) + pvv(ji,jj,jk,Kaa) )235 puu(ji,jj,jk,Kmm) = puu(ji,jj,jk,Kmm) + rn_atfp * ( puu(ji,jj,jk,Kbb) - 2._wp * puu(ji,jj,jk,Kmm) + puu(ji,jj,jk,Kaa) ) 236 pvv(ji,jj,jk,Kmm) = pvv(ji,jj,jk,Kmm) + rn_atfp * ( pvv(ji,jj,jk,Kbb) - 2._wp * pvv(ji,jj,jk,Kmm) + pvv(ji,jj,jk,Kaa) ) 239 237 END_3D 240 238 ! … … 253 251 zve3b = pe3v(ji,jj,jk,Kbb) * pvv(ji,jj,jk,Kbb) 254 252 ! 255 puu(ji,jj,jk,Kmm) = ( zue3n + atfp * ( zue3b - 2._wp * zue3n + zue3a ) ) / ze3u_f(ji,jj,jk)256 pvv(ji,jj,jk,Kmm) = ( zve3n + atfp * ( zve3b - 2._wp * zve3n + zve3a ) ) / ze3v_f(ji,jj,jk)253 puu(ji,jj,jk,Kmm) = ( zue3n + rn_atfp * ( zue3b - 2._wp * zue3n + zue3a ) ) / ze3u_f(ji,jj,jk) 254 pvv(ji,jj,jk,Kmm) = ( zve3n + rn_atfp * ( zve3b - 2._wp * zve3n + zve3a ) ) / ze3v_f(ji,jj,jk) 257 255 END_3D 258 256 pe3u(:,:,1:jpkm1,Kmm) = ze3u_f(:,:,1:jpkm1) … … 280 278 ENDIF 281 279 ! 282 ENDIF ! neuler /= 0280 ENDIF ! .NOT. l_1st_euler 283 281 ! 284 282 ! Set "now" and "before" barotropic velocities for next time step:
Note: See TracChangeset
for help on using the changeset viewer.