Changeset 202 for trunk/NEMO/TOP_SRC/TRP/trcadv_muscl2.F90
- Timestamp:
- 2004-12-22T16:55:48+01:00 (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/TOP_SRC/TRP/trcadv_muscl2.F90
r186 r202 10 10 !!---------------------------------------------------------------------- 11 11 !! * Modules used 12 USE oce_trc ! ocean dynamics and active tracers 13 USE trc ! ocean passive tracers 14 USE trcbbl ! tracers: bottom boudary layer 15 USE lbclnk 12 USE oce_trc ! ocean dynamics and active tracers variables 13 USE trc ! ocean passive tracers variables 14 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 16 15 17 16 IMPLICIT NONE … … 125 124 DO jk = 1, jpkm1 126 125 DO jj = 2, jpj 127 DO ji = fs_2, fs_jpim1 ! vector opt. 128 z0u = zt1(ji,jj,jk) * zt1(ji-1,jj,jk) 129 IF( z0u > 0. ) THEN 130 ztp1(ji,jj,jk) = 0.5 * ( zt1(ji,jj,jk)+zt1(ji-1,jj,jk) ) 131 ELSE 132 ztp1(ji,jj,jk) = 0.e0 133 ENDIF 134 135 z0v = zt2(ji,jj,jk) * zt2(ji,jj-1,jk) 136 IF( z0v > 0. ) THEN 137 ztp2(ji,jj,jk) = 0.5 * ( zt2(ji,jj,jk)+zt2(ji,jj-1,jk) ) 138 ELSE 139 ztp2(ji,jj,jk) = 0.e0 140 ENDIF 126 DO ji = fs_2, jpi ! vector opt. 127 ztp1(ji,jj,jk) = ( zt1(ji,jj,jk) + zt1(ji-1,jj ,jk) ) & 128 & * ( 0.25 + SIGN( 0.25, zt1(ji,jj,jk) * zt1(ji-1,jj ,jk) ) ) 129 ztp2(ji,jj,jk) = ( zt2(ji,jj,jk) + zt2(ji ,jj-1,jk) ) & 130 & * ( 0.25 + SIGN( 0.25, zt2(ji,jj,jk) * zt2(ji ,jj-1,jk) ) ) 141 131 END DO 142 132 END DO … … 287 277 END DO 288 278 289 290 279 IF(l_ctl) THEN ! print mean trends (used for debugging) 280 ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 281 WRITE(numout,*) ' trc/had - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn), ' muscl' 282 tra_ctl(jn) = ztra 283 ENDIF 291 284 292 285 ! II. Vertical advective fluxes … … 306 299 DO jj = 1, jpj 307 300 DO ji = 1, jpi 308 z0w = zt1(ji,jj,jk) * zt1(ji,jj,jk+1) 309 IF( z0w > 0. ) THEN 310 ztp1(ji,jj,jk) = 0.5 * ( zt1(ji,jj,jk) + zt1(ji,jj,jk+1) ) 311 ELSE 312 ztp1(ji,jj,jk) = 0.e0 313 ENDIF 301 ztp1(ji,jj,jk) = ( zt1(ji,jj,jk) + zt1(ji,jj,jk+1) ) & 302 & * ( 0.25 + SIGN( 0.25, zt1(ji,jj,jk) * zt1(ji,jj,jk+1) ) ) 314 303 END DO 315 304 END DO … … 360 349 361 350 ! surface values 362 #if defined key_dynspg_fsc 363 ! free surface-constant volume 364 zt1(:,:, 1 ) = zwn(:,:,1) * trb(:,:,1,jn) 365 #else 366 ! rigid lid : flux set to zero 367 zt1(:,:, 1 ) = 0.e0 368 #endif 351 IF( lk_dynspg_fsc .OR. lk_dynspg_fsc_tsk ) THEN ! free surface-constant volume 352 zt1(:,:, 1 ) = zwn(:,:,1) * trb(:,:,1,jn) 353 ELSE ! rigid lid : flux set to zero 354 zt1(:,:, 1 ) = 0.e0 355 ENDIF 369 356 370 357 ! bottom values … … 389 376 END DO 390 377 391 IF( l_ctl .AND. lwp) THEN ! print mean trends (used for debugging)392 ztra = SUM( tra(2: jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) )378 IF(l_ctl) THEN ! print mean trends (used for debugging) 379 ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 393 380 WRITE(numout,*) ' trc/zad - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn), ' muscl2' 394 381 tra_ctl(jn) = ztra 395 382 ENDIF 396 383 397 END DO384 END DO 398 385 399 386 END SUBROUTINE trc_adv_muscl2
Note: See TracChangeset
for help on using the changeset viewer.