Changeset 7241
- Timestamp:
- 2016-11-16T16:29:54+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r7233_CMIP6_diags_trunk_version/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_fct.F90
r7236 r7241 36 36 37 37 LOGICAL :: l_trd ! flag to compute trends 38 LOGICAL :: l_trans ! flag to output vertically integrated transports 38 39 REAL(wp) :: r1_6 = 1._wp / 6._wp ! =1/6 39 40 … … 81 82 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwi, zwx, zwy, zwz, ztu, ztv, zltu, zltv, ztw 82 83 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdx, ztrdy, ztrd, zptry 84 REAL(wp), POINTER, DIMENSION(:,:) :: z2d 83 85 !!---------------------------------------------------------------------- 84 86 ! … … 94 96 ! 95 97 l_trd = .FALSE. 98 l_trans = .FALSE. 96 99 IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype == 'TRC' .AND. l_trdtrc ) ) l_trd = .TRUE. 97 ! 98 IF( l_trd ) THEN 100 IF( cdtype == 'TRA' .AND. (iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") ) ) l_trans = .TRUE. 101 ! 102 IF( l_trd .OR. l_trans ) THEN 99 103 CALL wrk_alloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz ) 100 104 ztrdx(:,:,:) = 0._wp ; ztrdy(:,:,:) = 0._wp ; ztrdz(:,:,:) = 0._wp … … 165 169 CALL lbc_lnk( zwi, 'T', 1. ) ! Lateral boundary conditions on zwi (unchanged sign) 166 170 ! 167 IF( l_trd ) THEN ! trend diagnostics (contribution of upstream fluxes)171 IF( l_trd .OR. l_trans ) THEN ! trend diagnostics (contribution of upstream fluxes) 168 172 ztrdx(:,:,:) = zwx(:,:,:) ; ztrdy(:,:,:) = zwy(:,:,:) ; ztrdz(:,:,:) = zwz(:,:,:) 169 173 END IF … … 293 297 END DO 294 298 ! 295 IF( l_trd ) THEN ! trend diagnostics (contribution of upstream fluxes)299 IF( l_trd .OR. l_trans ) THEN ! trend diagnostics (contribution of upstream fluxes) 296 300 ztrdx(:,:,:) = ztrdx(:,:,:) + zwx(:,:,:) ! <<< Add to previously computed 297 301 ztrdy(:,:,:) = ztrdy(:,:,:) + zwy(:,:,:) ! <<< Add to previously computed 298 302 ztrdz(:,:,:) = ztrdz(:,:,:) + zwz(:,:,:) ! <<< Add to previously computed 299 ! 303 ENDIF 304 ! 305 IF( l_trd ) THEN 300 306 CALL trd_tra( kt, cdtype, jn, jptra_xad, ztrdx, pun, ptn(:,:,:,jn) ) 301 307 CALL trd_tra( kt, cdtype, jn, jptra_yad, ztrdy, pvn, ptn(:,:,:,jn) ) 302 308 CALL trd_tra( kt, cdtype, jn, jptra_zad, ztrdz, pwn, ptn(:,:,:,jn) ) 303 309 ! 304 CALL wrk_dealloc( jpi,jpj,jpk, ztrdx, ztrdy, ztrdz )305 310 END IF 306 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) 311 312 IF( l_trans .AND. jn==jp_tem ) THEN 313 CALL wrk_alloc( jpi, jpj, z2d ) 314 z2d(:,:) = 0._wp 315 DO jk = 1, jpkm1 316 DO jj = 2, jpjm1 317 DO ji = fs_2, fs_jpim1 ! vector opt. 318 z2d(ji,jj) = z2d(ji,jj) + ztrdx(ji,jj,jk) 319 END DO 320 END DO 321 END DO 322 CALL lbc_lnk( z2d, 'U', -1. ) 323 CALL iom_put( "uadv_heattr", rau0_rcp * z2d ) ! heat transport in i-direction 324 ! 325 z2d(:,:) = 0._wp 326 DO jk = 1, jpkm1 327 DO jj = 2, jpjm1 328 DO ji = fs_2, fs_jpim1 ! vector opt. 329 z2d(ji,jj) = z2d(ji,jj) + ztrdy(ji,jj,jk) 330 END DO 331 END DO 332 END DO 333 CALL lbc_lnk( z2d, 'V', -1. ) 334 CALL iom_put( "vadv_heattr", rau0_rcp * z2d ) ! heat transport in j-direction 335 CALL wrk_dealloc( jpi, jpj, z2d ) 336 ENDIF 337 ! "Poleward" heat and salt transports (contribution of upstream fluxes) 307 338 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 308 339 zptry(:,:,:) = zptry(:,:,:) + zwy(:,:,:) ! <<< Add to previously computed … … 313 344 ! 314 345 CALL wrk_dealloc( jpi,jpj,jpk, zwi, zwx, zwy, zwz, ztu, ztv, zltu, zltv, ztw ) 346 IF( l_trd .OR. l_trans ) THEN 347 CALL wrk_dealloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz ) 348 ENDIF 315 349 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL wrk_dealloc( jpi, jpj, jpk, zptry ) 316 350 !
Note: See TracChangeset
for help on using the changeset viewer.