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 6910 for branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/DIA/diaptr.F90 – NEMO

Ignore:
Timestamp:
2016-09-05T17:56:42+02:00 (8 years ago)
Author:
timgraham
Message:

Bug fixes ofr diagnostics in traadv_tvd and traadv_eiv
Modified method for barotropic heat transport calculation as values weren't being output correctly on Cray computer (although I still don't understand why).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/DIA/diaptr.F90

    r6903 r6910  
    8686      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zmask   ! 3D workspace 
    8787      REAL(wp), DIMENSION(jpi,jpj,jpk,jpts) ::  zts   ! 3D workspace 
     88      REAL(wp), DIMENSION(jpj)     ::  vsum   ! 1D workspace 
     89      REAL(wp), DIMENSION(jpj,jpts)     ::  tssum   ! 1D workspace 
     90  
    8891      ! 
    8992      !overturning calculation 
     
    198201             WHERE( sjk(:,1,1) /= 0._wp )   r1_sjk(:,1,1) = 1._wp / sjk(:,1,1) 
    199202             
    200             htr_btr(:,1) = ptr_sj( zvn(:,:,:), btmsk(:,:,1)) * ptr_sj( zts(:,:,:,jp_tem), btmsk(:,:,1) ) * r1_sjk(:,1,1) 
    201             str_btr(:,1) = ptr_sj( zvn(:,:,:), btmsk(:,:,1)) * ptr_sj( zts(:,:,:,jp_sal), btmsk(:,:,1) ) * r1_sjk(:,1,1) 
     203            vsum = ptr_sj( zvn(:,:,:), btmsk(:,:,1)) 
     204            tssum(:,jp_tem) = ptr_sj( zts(:,:,:,jp_tem), btmsk(:,:,1) ) 
     205            tssum(:,jp_sal) = ptr_sj( zts(:,:,:,jp_sal), btmsk(:,:,1) ) 
     206            htr_btr(:,1) = vsum * tssum(:,jp_tem) * r1_sjk(:,1,1) 
     207            str_btr(:,1) = vsum * tssum(:,jp_sal) * r1_sjk(:,1,1) 
    202208            z2d(1,:) = htr_btr(:,1) * rc_pwatt        !  (conversion in PW) 
    203             DO ji = 1, jpi 
     209            DO ji = 2, jpi 
    204210               z2d(ji,:) = z2d(1,:) 
    205211            ENDDO 
     
    207213            CALL iom_put( TRIM(cl1), z2d ) 
    208214            z2d(1,:) = str_btr(:,1) * rc_ggram        !  (conversion in Gg) 
    209             DO ji = 1, jpi 
     215            DO ji = 2, jpi 
    210216              z2d(ji,:) = z2d(1,:) 
    211217            ENDDO 
     
    217223                    r1_sjk(:,1,jn) = 0._wp 
    218224                    WHERE( sjk(:,1,jn) /= 0._wp )   r1_sjk(:,1,jn) = 1._wp / sjk(:,1,jn) 
    219                     htr_btr(:,jn) = ptr_sj( zvn(:,:,:), btmsk(:,:,jn) ) * ptr_sj( zts(:,:,:,jp_tem), btmsk(:,:,jn) )*r1_sjk(:,1,jn) 
    220                     str_btr(:,jn) = ptr_sj( zvn(:,:,:), btmsk(:,:,jn) ) * ptr_sj( zts(:,:,:,jp_sal), btmsk(:,:,jn) )*r1_sjk(:,1,jn) 
     225                    vsum = ptr_sj( zvn(:,:,:), btmsk(:,:,jn)) 
     226                    tssum(:,jp_tem) = ptr_sj( zts(:,:,:,jp_tem), btmsk(:,:,jn) ) 
     227                    tssum(:,jp_sal) = ptr_sj( zts(:,:,:,jp_sal), btmsk(:,:,jn) ) 
     228                    htr_btr(:,jn) = vsum * tssum(:,jp_tem) * r1_sjk(:,1,jn) 
     229                    str_btr(:,jn) = vsum * tssum(:,jp_sal) * r1_sjk(:,1,jn) 
    221230                    z2d(1,:) = htr_btr(:,jn) * rc_pwatt !  (conversion in PW) 
    222231                    DO ji = 1, jpi 
     
    586595         &      htr_vt(jpj,nptr)  , str_vs(jpj,nptr)  ,   & 
    587596         &      htr_ove(jpj,nptr) , str_ove(jpj,nptr) ,   & 
     597         &      htr_btr(jpj,nptr) , str_btr(jpj,nptr) ,   & 
    588598         &      htr_ldf(jpj,nptr) , str_ldf(jpj,nptr) , STAT=ierr(1)  ) 
    589599         ! 
Note: See TracChangeset for help on using the changeset viewer.