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 14982 for NEMO/trunk/src/OCE/TRA – NEMO

Ignore:
Timestamp:
2021-06-11T16:52:03+02:00 (3 years ago)
Author:
hadcv
Message:

#2665: Various fixes for code enabled with key_qco/key_linssh

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/TRA/tradmp.F90

    r14718 r14982  
    5353   !! * Substitutions 
    5454#  include "do_loop_substitute.h90" 
     55#  include "domzgr_substitute.h90" 
    5556   !!---------------------------------------------------------------------- 
    5657   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    9697      INTEGER ::   ji, jj, jk, jn   ! dummy loop indices 
    9798      REAL(wp), DIMENSION(A2D(nn_hls),jpk,jpts)     ::  zts_dta 
     99      REAL(wp), DIMENSION(:,:,:)  , ALLOCATABLE ::  zwrk 
    98100      REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE ::  ztrdts 
    99101      !!---------------------------------------------------------------------- 
     
    102104      ! 
    103105      IF( l_trdtra .OR. iom_use('hflx_dmp_cea') .OR. iom_use('sflx_dmp_cea') ) THEN   !* Save ta and sa trends 
    104          ALLOCATE( ztrdts(jpi,jpj,jpk,jpts) ) 
    105          ztrdts(:,:,:,:) = pts(:,:,:,:,Krhs) 
     106         ALLOCATE( ztrdts(A2D(nn_hls),jpk,jpts) ) 
     107         DO jn = 1, jpts 
     108            DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpk ) 
     109               ztrdts(ji,jj,jk,jn) = pts(ji,jj,jk,jn,Krhs) 
     110            END_3D 
     111         END DO 
    106112      ENDIF 
    107113      !                           !==  input T-S data at kt  ==! 
     
    141147      ! 
    142148      ! outputs (clem trunk) 
    143       IF( iom_use('hflx_dmp_cea') )       & 
    144          &   CALL iom_put('hflx_dmp_cea', & 
    145          &   SUM( ( pts(:,:,:,jp_tem,Krhs) - ztrdts(:,:,:,jp_tem) ) * e3t(:,:,:,Kmm), dim=3 ) * rcp * rho0 ) ! W/m2 
    146       IF( iom_use('sflx_dmp_cea') )       & 
    147          &   CALL iom_put('sflx_dmp_cea', & 
    148          &   SUM( ( pts(:,:,:,jp_sal,Krhs) - ztrdts(:,:,:,jp_sal) ) * e3t(:,:,:,Kmm), dim=3 ) * rho0 )       ! g/m2/s 
     149      IF( iom_use('hflx_dmp_cea') .OR. iom_use('sflx_dmp_cea') ) THEN 
     150         ALLOCATE( zwrk(A2D(nn_hls),jpk) )          ! Needed to handle expressions containing e3t when using key_qco or key_linssh 
     151         zwrk(:,:,:) = 0._wp 
     152 
     153         IF( iom_use('hflx_dmp_cea') ) THEN 
     154            DO_3D( 0, 0, 0, 0, 1, jpk ) 
     155               zwrk(ji,jj,jk) = ( pts(ji,jj,jk,jp_tem,Krhs) - ztrdts(ji,jj,jk,jp_tem) ) * e3t(ji,jj,jk,Kmm) 
     156            END_3D 
     157            CALL iom_put('hflx_dmp_cea', SUM( zwrk(:,:,:), dim=3 ) * rcp * rho0 ) ! W/m2 
     158         ENDIF 
     159         IF( iom_use('sflx_dmp_cea') ) THEN 
     160            DO_3D( 0, 0, 0, 0, 1, jpk ) 
     161               zwrk(ji,jj,jk) = ( pts(ji,jj,jk,jp_sal,Krhs) - ztrdts(ji,jj,jk,jp_sal) ) * e3t(ji,jj,jk,Kmm) 
     162            END_3D 
     163            CALL iom_put('sflx_dmp_cea', SUM( zwrk(:,:,:), dim=3 ) * rho0 )       ! g/m2/s 
     164         ENDIF 
     165 
     166         DEALLOCATE( zwrk ) 
     167      ENDIF 
    149168      ! 
    150169      IF( l_trdtra )   THEN       ! trend diagnostic 
Note: See TracChangeset for help on using the changeset viewer.