Changeset 2068 for branches/DEV_r1837_MLF/NEMO/OPA_SRC/TRA/tranxt.F90
- Timestamp:
- 2010-09-06T17:56:51+02:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DEV_r1837_MLF/NEMO/OPA_SRC/TRA/tranxt.F90
r2005 r2068 178 178 !! 179 179 INTEGER :: ji, jj, jk ! dummy loop indices 180 REAL(wp) :: zt_ m, zs_m! temporary scalars180 REAL(wp) :: zt_d, zs_d ! temporary scalars 181 181 REAL(wp) :: ztn, zsn ! - - 182 182 !!---------------------------------------------------------------------- … … 203 203 ! ! time laplacian on tracers 204 204 ! ! used for both Asselin and Brown & Campana filters 205 zt_ m= ta(ji,jj,jk) - 2. * tn(ji,jj,jk) + tb(ji,jj,jk)206 zs_ m= sa(ji,jj,jk) - 2. * sn(ji,jj,jk) + sb(ji,jj,jk)205 zt_d = ta(ji,jj,jk) - 2. * tn(ji,jj,jk) + tb(ji,jj,jk) 206 zs_d = sa(ji,jj,jk) - 2. * sn(ji,jj,jk) + sb(ji,jj,jk) 207 207 ! 208 208 ! ! swap of arrays 209 tb(ji,jj,jk) = tn(ji,jj,jk) + atfp * zt_ m! tb <-- tn filtered210 sb(ji,jj,jk) = sn(ji,jj,jk) + atfp * zs_ m! sb <-- sn filtered209 tb(ji,jj,jk) = tn(ji,jj,jk) + atfp * zt_d ! tb <-- tn filtered 210 sb(ji,jj,jk) = sn(ji,jj,jk) + atfp * zs_d ! sb <-- sn filtered 211 211 tn(ji,jj,jk) = ta(ji,jj,jk) ! tn <-- ta 212 212 sn(ji,jj,jk) = sa(ji,jj,jk) ! sn <-- sa 213 213 ! ! semi imlicit hpg computation (Brown & Campana) 214 214 IF( ln_dynhpg_imp ) THEN 215 ta(ji,jj,jk) = ztn + rbcp * zt_ m! ta <-- Brown & Campana average216 sa(ji,jj,jk) = zsn + rbcp * zs_ m! sa <-- Brown & Campana average215 ta(ji,jj,jk) = ztn + rbcp * zt_d ! ta <-- Brown & Campana average 216 sa(ji,jj,jk) = zsn + rbcp * zs_d ! sa <-- Brown & Campana average 217 217 ENDIF 218 218 END DO … … 254 254 REAL :: ztc_a, ztc_n, ztc_b ! - - 255 255 REAL :: zsc_a, zsc_n, zsc_b ! - - 256 REAL :: ztc_f, zsc_f, ztc_ m, zsc_m! - -257 REAL :: ze3t_f, ze3t_ m! - -256 REAL :: ztc_f, zsc_f, ztc_d, zsc_d ! - - 257 REAL :: ze3t_f, ze3t_d ! - - 258 258 REAL :: zfact1, zfact2 ! - - 259 259 !!---------------------------------------------------------------------- … … 274 274 ELSE ! apply filter on thickness weighted tracer and swap 275 275 DO jk = 1, jpkm1 276 zfact1 = atfp * r 2dt_t(jk)276 zfact1 = atfp * rdttra(jk) 277 277 zfact2 = zfact1 / rau0 278 278 DO jj = 1, jpj … … 282 282 ze3t_n = fse3t_n(ji,jj,jk) 283 283 ze3t_a = fse3t_a(ji,jj,jk) 284 ze3t_ m = fse3t_m(ji,jj,jk)284 ze3t_d = fse3t_d(ji,jj,jk) 285 285 ! ! tracer content at Before, now and after 286 286 ztc_b = tb(ji,jj,jk) * ze3t_b ; zsc_b = sb(ji,jj,jk) * ze3t_b … … 290 290 ! ! Time laplacian on tracer contents 291 291 ! ! used for both Asselin and Brown & Campana filters 292 ztc_ m = ztc_a - 2. * ztc_n+ ztc_b293 zsc_ m = zsc_a - 2. * zsc_n+ zsc_b292 ztc_d = ztc_a - 2. * ztc_n + ztc_b 293 zsc_d = zsc_a - 2. * zsc_n + zsc_b 294 294 ! ! Asselin Filter on thicknesses and tracer contents 295 ze3t_f = ze3t_n + atfp * ze3t_ m296 ztc_f = ztc_n + atfp * ztc_ m297 zsc_f = zsc_n + atfp * zsc_ m295 ze3t_f = ze3t_n + atfp * ze3t_d 296 ztc_f = ztc_n + atfp * ztc_d 297 zsc_f = zsc_n + atfp * zsc_d 298 298 ! ! Filter correction 299 299 IF( jk == 1 ) THEN 300 ze3t_f = ze3t_f - zfact2 * ( emp_b (ji,jj) - emp (ji,jj) ) 301 ztc_f = ztc_f - zfact1 * ( sbc_trd_hc_n(ji,jj) - sbc_trd_hc_b(ji,jj) ) 300 ! WRITE(numout,*) 'filter correction: sbc_trd_hc_n' 301 ze3t_f = ze3t_f - zfact2 * ( emp_b (ji,jj) - emp (ji,jj) ) 302 ztc_f = ztc_f - zfact1 * ( sbc_trd_hc_n(ji,jj) - sbc_trd_hc_b(ji,jj) ) 302 303 ENDIF 303 304 IF( ln_traqsr .AND. ( jk .LE. nksr ) ) THEN 305 ! WRITE(numout,*) 'jk =', jk 306 ! WRITE(numout,*) 'filter correction: qsr_trd_hc_n' 304 307 ztc_f = ztc_f - zfact1 * ( qsr_trd_hc_n(ji,jj,jk) - qsr_trd_hc_b(ji,jj,jk) ) 305 308 ENDIF 306 !! swap of arrays309 ! swap of arrays 307 310 ze3t_f = 1.e0 / ze3t_f 308 311 tb(ji,jj,jk) = ztc_f * ze3t_f ! tb <-- tn filtered … … 312 315 ! ! semi imlicit hpg computation (Brown & Campana) 313 316 IF( ln_dynhpg_imp ) THEN 314 ze3t_ m = 1.e0 / ( ze3t_n + rbcp * ze3t_m)315 ta(ji,jj,jk) = ze3t_ m * ( ztc_n + rbcp * ztc_m) ! ta <-- Brown & Campana average316 sa(ji,jj,jk) = ze3t_ m * ( zsc_n + rbcp * zsc_m) ! sa <-- Brown & Campana average317 ze3t_d = 1.e0 / ( ze3t_n + rbcp * ze3t_d ) 318 ta(ji,jj,jk) = ze3t_d * ( ztc_n + rbcp * ztc_d ) ! ta <-- Brown & Campana average 319 sa(ji,jj,jk) = ze3t_d * ( zsc_n + rbcp * zsc_d ) ! sa <-- Brown & Campana average 317 320 ENDIF 318 321 END DO
Note: See TracChangeset
for help on using the changeset viewer.