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 5147 for trunk/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso.F90 – NEMO

Ignore:
Timestamp:
2015-03-13T11:01:32+01:00 (9 years ago)
Author:
cetlod
Message:

Merge changes from dev_r5020_CNRS_DIAPTR into trunk, see ticket #1435

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso.F90

    r5120 r5147  
    110110      REAL(wp) ::  zmskv, zabe2, zcof2, zcoef4   !   -      - 
    111111      REAL(wp) ::  zcoef0, zbtr, ztra            !   -      - 
    112 #if defined key_diaar5 
    113       REAL(wp)                         ::   zztmp               ! local scalar 
    114 #endif 
    115112      REAL(wp), POINTER, DIMENSION(:,:  ) ::  z2d 
    116113      REAL(wp), POINTER, DIMENSION(:,:,:) ::  zdkt, zdk1t, zdit, zdjt, ztfw  
     
    240237         ! 
    241238         ! "Poleward" diffusive heat or salt transports (T-S case only) 
    242          IF( cdtype == 'TRA' .AND. ln_diaptr .AND. ( MOD( kt, nn_fptr ) == 0 ) ) THEN 
     239         IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 
    243240            ! note sign is reversed to give down-gradient diffusive transports (#1043) 
    244             IF( jn == jp_tem)   htr_ldf(:) = ptr_vj( -zftv(:,:,:) ) 
    245             IF( jn == jp_sal)   str_ldf(:) = ptr_vj( -zftv(:,:,:) ) 
     241            IF( jn == jp_tem)   htr_ldf(:) = ptr_sj( -zftv(:,:,:) ) 
     242            IF( jn == jp_sal)   str_ldf(:) = ptr_sj( -zftv(:,:,:) ) 
    246243         ENDIF 
    247244  
    248 #if defined key_diaar5 
    249          IF( cdtype == 'TRA' .AND. jn == jp_tem  ) THEN 
    250             z2d(:,:) = 0._wp  
    251             ! note sign is reversed to give down-gradient diffusive transports (#1043) 
    252             zztmp = -1.0_wp * rau0 * rcp 
    253             DO jk = 1, jpkm1 
    254                DO jj = 2, jpjm1 
    255                   DO ji = fs_2, fs_jpim1   ! vector opt. 
    256                      z2d(ji,jj) = z2d(ji,jj) + zftu(ji,jj,jk)  
     245         IF( iom_use("udiff_heattr") .OR. iom_use("vdiff_heattr") ) THEN 
     246           ! 
     247           IF( cdtype == 'TRA' .AND. jn == jp_tem  ) THEN 
     248               z2d(:,:) = 0._wp  
     249               DO jk = 1, jpkm1 
     250                  DO jj = 2, jpjm1 
     251                     DO ji = fs_2, fs_jpim1   ! vector opt. 
     252                        z2d(ji,jj) = z2d(ji,jj) + zftu(ji,jj,jk)  
     253                     END DO 
    257254                  END DO 
    258255               END DO 
    259             END DO 
    260             z2d(:,:) = zztmp * z2d(:,:) 
    261             CALL lbc_lnk( z2d, 'U', -1. ) 
    262             CALL iom_put( "udiff_heattr", z2d )                  ! heat transport in i-direction 
    263             z2d(:,:) = 0._wp  
    264             DO jk = 1, jpkm1 
    265                DO jj = 2, jpjm1 
    266                   DO ji = fs_2, fs_jpim1   ! vector opt. 
    267                      z2d(ji,jj) = z2d(ji,jj) + zftv(ji,jj,jk)  
     256               z2d(:,:) = - rau0_rcp * z2d(:,:)     ! note sign is reversed to give down-gradient diffusive transports (#1043) 
     257               CALL lbc_lnk( z2d, 'U', -1. ) 
     258               CALL iom_put( "udiff_heattr", z2d )                  ! heat transport in i-direction 
     259               ! 
     260               z2d(:,:) = 0._wp  
     261               DO jk = 1, jpkm1 
     262                  DO jj = 2, jpjm1 
     263                     DO ji = fs_2, fs_jpim1   ! vector opt. 
     264                        z2d(ji,jj) = z2d(ji,jj) + zftv(ji,jj,jk)  
     265                     END DO 
    268266                  END DO 
    269267               END DO 
    270             END DO 
    271             z2d(:,:) = zztmp * z2d(:,:) 
    272             CALL lbc_lnk( z2d, 'V', -1. ) 
    273             CALL iom_put( "vdiff_heattr", z2d )                  !  heat transport in i-direction 
    274          END IF 
    275 #endif 
     268               z2d(:,:) = - rau0_rcp * z2d(:,:)     ! note sign is reversed to give down-gradient diffusive transports (#1043) 
     269               CALL lbc_lnk( z2d, 'V', -1. ) 
     270               CALL iom_put( "vdiff_heattr", z2d )                  !  heat transport in i-direction 
     271            END IF 
     272            ! 
     273         ENDIF 
    276274 
    277275         !!---------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.