- 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/TRA/traatfQCO.F90
r12624 r12724 114 114 ! IF( ln_bdy ) CALL bdy_tra( kt, Kbb, pts, Kaa ) ! BDY open boundaries 115 115 116 ! set time step size (Euler/Leapfrog)117 IF( neuler == 0 .AND. kt == nit000 ) THEN ; r2dt = rdt ! at nit000 (Euler)118 ELSEIF( kt <= nit000 + 1 ) THEN ; r2dt = 2._wp* rdt ! at nit000 or nit000+1 (Leapfrog)119 ENDIF120 121 116 ! trends computation initialisation 122 117 IF( l_trdtra ) THEN … … 129 124 ENDIF 130 125 ! total trend for the non-time-filtered variables. 131 zfact = 1.0 / r dt126 zfact = 1.0 / rn_Dt 132 127 ! G Nurser 23 Mar 2017. Recalculate trend as Delta(e3t*T)/e3tn; e3tn cancel from pts(Kmm) terms 133 128 DO jk = 1, jpkm1 … … 149 144 ENDIF 150 145 151 IF( neuler == 0 .AND. kt == nit000) THEN ! Euler time-stepping146 IF( l_1st_euler ) THEN ! Euler time-stepping 152 147 ! 153 148 IF (l_trdtra .AND. .NOT. ln_linssh ) THEN ! Zero Asselin filter contribution must be explicitly written out since for vvl … … 161 156 ELSE ! Leap-Frog + Asselin filter time stepping 162 157 ! 163 IF ( ln_linssh ) THEN ; CALL tra_atf_fix_lf( kt, Kbb, Kmm, Kaa, nit000, 'TRA', pts, jpts ) ! linear free surface164 ELSE ; CALL tra_atf_qco_lf( kt, Kbb, Kmm, Kaa, nit000, r dt, 'TRA', pts, sbc_tsc, sbc_tsc_b, jpts ) ! non-linear free surface158 IF ( ln_linssh ) THEN ; CALL tra_atf_fix_lf( kt, Kbb, Kmm, Kaa, nit000, 'TRA', pts, jpts ) ! linear free surface 159 ELSE ; CALL tra_atf_qco_lf( kt, Kbb, Kmm, Kaa, nit000, rn_Dt, 'TRA', pts, sbc_tsc, sbc_tsc_b, jpts ) ! non-linear free surface 165 160 ENDIF 166 161 ! … … 172 167 ! 173 168 IF( l_trdtra .AND. ln_linssh ) THEN ! trend of the Asselin filter (tb filtered - tb)/dt 174 zfact = 1._wp / r2dt175 169 DO jk = 1, jpkm1 176 ztrdt(:,:,jk) = ( pts(:,:,jk,jp_tem,Kmm) - ztrdt(:,:,jk) ) * zfact177 ztrds(:,:,jk) = ( pts(:,:,jk,jp_sal,Kmm) - ztrds(:,:,jk) ) * zfact170 ztrdt(:,:,jk) = ( pts(:,:,jk,jp_tem,Kmm) - ztrdt(:,:,jk) ) * r1_Dt 171 ztrds(:,:,jk) = ( pts(:,:,jk,jp_sal,Kmm) - ztrds(:,:,jk) ) * r1_Dt 178 172 END DO 179 173 CALL trd_tra( kt, Kmm, Kaa, 'TRA', jp_tem, jptra_atf, ztrdt ) … … 224 218 ztd = pt(ji,jj,jk,jn,Kaa) - 2._wp * ztn + pt(ji,jj,jk,jn,Kbb) ! time laplacian on tracers 225 219 ! 226 pt(ji,jj,jk,jn,Kmm) = ztn + atfp * ztd ! pt <-- filtered pt220 pt(ji,jj,jk,jn,Kmm) = ztn + rn_atfp * ztd ! pt <-- filtered pt 227 221 END_3D 228 222 ! … … 239 233 !! 240 234 !! ** Method : - Apply a thickness weighted Asselin time filter on now fields. 241 !! pt(Kmm) = ( e3t_m*pt(Kmm) + atfp*[ e3t_b*pt(Kbb) - 2 e3t_m*pt(Kmm) + e3t_a*pt(Kaa) ] )242 !! /( e3t_m + atfp*[ e3t_b - 2 e3t_m + e3t_a ] )235 !! pt(Kmm) = ( e3t_m*pt(Kmm) + rn_atfp*[ e3t_b*pt(Kbb) - 2 e3t_m*pt(Kmm) + e3t_a*pt(Kaa) ] ) 236 !! /( e3t_m + rn_atfp*[ e3t_b - 2 e3t_m + e3t_a ] ) 243 237 !! 244 238 !! ** Action : - pt(Kmm) ready for the next time step … … 282 276 ENDIF 283 277 zfact = 1._wp / p2dt 284 zfact1 = atfp * p2dt285 zfact2 = zfact1 * r1_r au0278 zfact1 = rn_atfp * p2dt 279 zfact2 = zfact1 * r1_rho0 286 280 DO jn = 1, kjpt 287 281 DO_3D_00_00( 1, jpkm1 ) … … 297 291 ztc_d = ztc_a - 2. * ztc_n + ztc_b 298 292 ! 299 ztc_f = ztc_n + atfp * ztc_d293 ztc_f = ztc_n + rn_atfp * ztc_d 300 294 ! 301 295 ! Asselin correction on scale factors is done via ssh in r3t_f
Note: See TracChangeset
for help on using the changeset viewer.