Changeset 1175 for trunk/NEMO/TOP_SRC/TRP/trcadv_muscl.F90
- Timestamp:
- 2008-09-11T18:26:34+02:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/TOP_SRC/TRP/trcadv_muscl.F90
r1152 r1175 18 18 USE lib_mpp 19 19 USE prtctl_trc ! Print control for debbuging 20 USE trdmld_trc 21 USE trdmld_trc_oce ! ocean variables trends 20 22 21 23 IMPLICIT NONE … … 29 31 !!---------------------------------------------------------------------- 30 32 !! TOP 1.0 , LOCEAN-IPSL (2005) 31 !! $ Id$33 !! $Header: /home/opalod/NEMOCVSROOT/NEMO/TOP_SRC/TRP/trcadv_muscl.F90,v 1.13 2007/10/12 09:26:30 opalod Exp $ 32 34 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 33 35 !!---------------------------------------------------------------------- … … 46 48 !! 47 49 !! ** Action : - update tra with the now advective tracer trends 48 !! - save trends in trtrd ('key_trc_diatrd')50 !! - save trends ('key_trdmld_trc') 49 51 !! 50 52 !! References : … … 78 80 REAL(wp) :: z0u, z0v, z0w 79 81 REAL(wp) :: zzt1, zzt2, zalpha, z2dtt 80 #if defined key_trc_diatrd 81 REAL(wp) :: ztai, ztaj 82 REAL(wp) :: zfui, zfvj 83 #endif 82 REAL(wp) :: ztai, ztaj, zfui, zfvj 83 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: ztrtrd 84 84 CHARACTER (len=22) :: charout 85 85 !!---------------------------------------------------------------------- … … 92 92 ENDIF 93 93 94 94 IF( l_trdtrc ) ALLOCATE( ztrtrd(jpi,jpj,jpk) ) 95 95 96 96 #if defined key_trcbbl_adv … … 105 105 106 106 DO jn = 1, jptra 107 #if defined key_trc_diatrd 108 DO jk = 1,jpk 109 DO jj = 1,jpj 110 DO ji = 1,jpi 111 IF (luttrd(jn)) trtrd(ji,jj,jk,ikeep(jn),1) = 0. 112 IF (luttrd(jn)) trtrd(ji,jj,jk,ikeep(jn),2) = 0. 113 IF (luttrd(jn)) trtrd(ji,jj,jk,ikeep(jn),3) = 0. 114 END DO 115 END DO 116 END DO 117 #endif 107 118 108 ! I. Horizontal advective fluxes 119 109 ! ------------------------------ … … 224 214 #if defined key_trc_diatrd 225 215 ! recompute the trends in i- and j-direction as Uh gradh(T) 226 # if ! defined key_zco216 # if defined key_s_coord || defined key_partial_steps 227 217 zfui = e2u(ji ,jj) * fse3u(ji, jj,jk) * un(ji, jj,jk) & 228 218 & - e2u(ji-1,jj) * fse3u(ji-1,jj,jk) * un(ji-1,jj,jk) … … 241 231 IF (luttrd(jn)) trtrd(ji,jj,jk,ikeep(jn),2) = ztaj 242 232 #endif 243 END DO 244 END DO 245 END DO 233 234 END DO 235 END DO 236 END DO 237 238 ! 3. Save the horizontal advective trends for diagnostics 239 ! ------------------------------------------------------- 240 !CDIR BEGIN COLLAPSE 241 TRDTRC_XY : IF( l_trdtrc ) THEN 242 243 ! 3.1) Passive tracer ZONAL advection trends 244 DO jk = 1, jpkm1 245 DO jj = 2, jpjm1 246 DO ji = fs_2, fs_jpim1 ! vector opt. 247 #if ! defined key_zco 248 zbtr = 1. / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 249 zfui = e2u(ji ,jj) * fse3u(ji, jj,jk) * zun(ji, jj,jk) & 250 & - e2u(ji-1,jj) * fse3u(ji-1,jj,jk) * zun(ji-1,jj,jk) 251 #else 252 zbtr = 1. / ( e1t(ji,jj) * e2t(ji,jj) ) 253 zfui = e2u(ji ,jj) * zun(ji, jj,jk) - e2u(ji-1,jj) * zun(ji-1,jj,jk) 254 #endif 255 ! recompute the trends in i- direction as Uh gradh(T) 256 ztrtrd(ji,jj,jk) = - zbtr*( zt1(ji,jj,jk) - zt1(ji-1,jj,jk) - trn(ji,jj,jk,jn)*zfui ) 257 END DO 258 END DO 259 END DO 260 261 IF (luttrd(jn)) CALL trd_mod_trc( ztrtrd, jn, jptrc_trd_xad, kt ) 262 263 ! 3.2) Passive tracer MERIDIONAL advection trends 264 DO jk = 1, jpkm1 265 DO jj = 2, jpjm1 266 DO ji = fs_2, fs_jpim1 ! vector opt. 267 ! recompute the trends in i- and j-direction as Uh gradh(T) 268 #if ! defined key_zco 269 zbtr = 1. / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 270 zfvj = e1v(ji,jj ) * fse3v(ji,jj ,jk) * zvn(ji,jj ,jk) & 271 & - e1v(ji,jj-1) * fse3v(ji,jj-1,jk) * zvn(ji,jj-1,jk) 272 #else 273 zbtr = 1. / ( e1t(ji,jj) * e2t(ji,jj) ) 274 zfvj = e1v(ji,jj ) * zvn(ji,jj ,jk) - e1v(ji,jj-1) * zvn(ji,jj-1,jk) 275 #endif 276 ztrtrd(ji,jj,jk) = - zbtr*( zt2(ji,jj,jk) - zt2(ji,jj-1,jk) - trn(ji,jj,jk,jn)*zfvj ) 277 END DO 278 END DO 279 END DO 280 281 IF (luttrd(jn)) CALL trd_mod_trc( ztrtrd, jn, jptrc_trd_yad, kt ) 282 283 ENDIF TRDTRC_XY 284 !CDIR END 285 246 286 ENDDO 247 287 … … 328 368 IF (luttrd(jn)) trtrd(ji,jj,jk,ikeep(jn),3) = ztra - trn(ji,jj,jk,jn) * hdivn(ji,jj,jk) 329 369 #endif 330 END DO 331 END DO 332 END DO 333 370 371 END DO 372 END DO 373 END DO 374 375 ! 3. Save the vertical advective trends for diagnostic 376 ! ---------------------------------------------------- 377 !CDIR BEGIN COLLAPSE 378 TRDTRC_Z : IF( l_trdtrc )THEN 379 380 ! Compute T/S vertical advection trends 381 DO jk = 1, jpkm1 382 DO jj = 2, jpjm1 383 DO ji = fs_2, fs_jpim1 ! vector opt. 384 zbtr = 1. / fse3t(ji,jj,jk) 385 ! horizontal advective trends 386 ztra = - zbtr * ( zt1(ji,jj,jk) - zt1(ji,jj,jk+1) ) 387 ! save the vertical advective trends computed as w gradz(T) 388 ztrtrd(ji,jj,jk) = ztra - trn(ji,jj,jk,jn) * hdivn(ji,jj,jk) 389 END DO 390 END DO 391 END DO 392 393 IF (luttrd(jn)) CALL trd_mod_trc(ztrtrd, jn, jptrc_trd_zad, kt) 394 395 END IF TRDTRC_Z 396 !CDIR END 334 397 END DO 335 398
Note: See TracChangeset
for help on using the changeset viewer.