New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 7352 for branches/2016/dev_r7233_CMIP6_diags_trunk_version/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_triad.F90 – NEMO

Ignore:
Timestamp:
2016-11-28T17:52:03+01:00 (7 years ago)
Author:
timgraham
Message:

Changes suggested byt reviewer

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_r7233_CMIP6_diags_trunk_version/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_triad.F90

    r7236 r7352  
    2020   USE traldf_iso     ! lateral diffusion (Madec operator)         (tra_ldf_iso routine) 
    2121   USE diaptr         ! poleward transport diagnostics 
     22   USE diaar5         ! AR5 diagnostics 
    2223   USE zpshde         ! partial step: hor. derivative     (zps_hde routine) 
    2324   ! 
     
    3536 
    3637   REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, SAVE ::   zdkt3d   !: vertical tracer gradient at 2 levels 
     38 
     39   LOGICAL  ::   l_ptr   ! flag to compute poleward transport 
     40   LOGICAL  ::   l_hst   ! flag to compute heat transport 
     41 
    3742 
    3843   !! * Substitutions 
     
    8994      REAL(wp) ::   ze1ur, ze2vr, ze3wr, zdxt, zdyt, zdzt 
    9095      REAL(wp) ::   zah, zah_slp, zaei_slp 
    91 #if defined key_diaar5 
    92       REAL(wp) ::   zztmp              ! local scalar 
    93 #endif 
    9496      REAL(wp), POINTER, DIMENSION(:,:  ) :: z2d                                            ! 2D workspace 
    9597      REAL(wp), POINTER, DIMENSION(:,:,:) :: zdit, zdjt, zftu, zftv, ztfw, zpsi_uw, zpsi_vw   ! 3D     - 
     
    112114         IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~' 
    113115      ENDIF 
    114       !                                               ! set time step size (Euler/Leapfrog) 
     116      !    
     117      l_hst = .FALSE. 
     118      l_ptr = .FALSE. 
     119      IF( cdtype == 'TRA' .AND. ln_diaptr )                                                 l_ptr = .TRUE.  
     120      IF( cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 
     121         &                        iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  ) )   l_hst = .TRUE. 
     122      ! 
     123      !                                                        ! set time step size (Euler/Leapfrog) 
    115124      IF( neuler == 0 .AND. kt == kit000 ) THEN   ;   z2dt =     rdt      ! at nit000   (Euler) 
    116125      ELSE                                        ;   z2dt = 2.* rdt      !             (Leapfrog) 
     
    416425            ! 
    417426            !                          ! "Poleward" diffusive heat or salt transports (T-S case only) 
    418             IF( cdtype == 'TRA' .AND. ln_diaptr )  CALL dia_ptr_ohst_components( jn, 'ldf', zftv(:,:,:) ) 
    419             ! 
    420             IF( iom_use("udiff_heattr") .OR. iom_use("vdiff_heattr") ) THEN 
    421               ! 
    422               IF( cdtype == 'TRA' .AND. jn == jp_tem  ) THEN 
    423                   z2d(:,:) = zftu(ji,jj,1)  
    424                   DO jk = 2, jpkm1 
    425                      DO jj = 2, jpjm1 
    426                         DO ji = fs_2, fs_jpim1   ! vector opt. 
    427                            z2d(ji,jj) = z2d(ji,jj) + zftu(ji,jj,jk)  
    428                         END DO 
    429                      END DO 
    430                   END DO 
    431                   z2d(:,:) = rau0_rcp * z2d(:,:)  
    432                   CALL lbc_lnk( z2d, 'U', -1. ) 
    433                   CALL iom_put( "udiff_heattr", z2d )                  ! heat i-transport 
    434                   ! 
    435                   z2d(:,:) = zftv(ji,jj,1)  
    436                   DO jk = 2, jpkm1 
    437                      DO jj = 2, jpjm1 
    438                         DO ji = fs_2, fs_jpim1   ! vector opt. 
    439                            z2d(ji,jj) = z2d(ji,jj) + zftv(ji,jj,jk)  
    440                         END DO 
    441                      END DO 
    442                   END DO 
    443                   z2d(:,:) = rau0_rcp * z2d(:,:)      
    444                   CALL lbc_lnk( z2d, 'V', -1. ) 
    445                   CALL iom_put( "vdiff_heattr", z2d )                  !  heat j-transport 
    446                ENDIF 
    447                ! 
    448             ENDIF 
     427            IF( l_ptr )  CALL dia_ptr_hst( jn, 'ldf', zftv(:,:,:)  ) 
     428            !                          ! Diffusive heat transports 
     429            IF( l_hst )  CALL dia_ar5_hst( jn, 'ldf', zftu(:,:,:), zftv(:,:,:) ) 
    449430            ! 
    450431         ENDIF                                                    !== end pass selection  ==! 
Note: See TracChangeset for help on using the changeset viewer.