Index: branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/DIA/diaptr.F90
===================================================================
--- branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/DIA/diaptr.F90	(revision 6903)
+++ branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/DIA/diaptr.F90	(revision 6910)
@@ -86,4 +86,7 @@
       REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zmask   ! 3D workspace
       REAL(wp), DIMENSION(jpi,jpj,jpk,jpts) ::  zts   ! 3D workspace
+      REAL(wp), DIMENSION(jpj)     ::  vsum   ! 1D workspace
+      REAL(wp), DIMENSION(jpj,jpts)     ::  tssum   ! 1D workspace
+ 
       !
       !overturning calculation
@@ -198,8 +201,11 @@
              WHERE( sjk(:,1,1) /= 0._wp )   r1_sjk(:,1,1) = 1._wp / sjk(:,1,1)
             
-            htr_btr(:,1) = ptr_sj( zvn(:,:,:), btmsk(:,:,1)) * ptr_sj( zts(:,:,:,jp_tem), btmsk(:,:,1) ) * r1_sjk(:,1,1)
-            str_btr(:,1) = ptr_sj( zvn(:,:,:), btmsk(:,:,1)) * ptr_sj( zts(:,:,:,jp_sal), btmsk(:,:,1) ) * r1_sjk(:,1,1)
+            vsum = ptr_sj( zvn(:,:,:), btmsk(:,:,1))
+            tssum(:,jp_tem) = ptr_sj( zts(:,:,:,jp_tem), btmsk(:,:,1) )
+            tssum(:,jp_sal) = ptr_sj( zts(:,:,:,jp_sal), btmsk(:,:,1) )
+            htr_btr(:,1) = vsum * tssum(:,jp_tem) * r1_sjk(:,1,1)
+            str_btr(:,1) = vsum * tssum(:,jp_sal) * r1_sjk(:,1,1)
             z2d(1,:) = htr_btr(:,1) * rc_pwatt        !  (conversion in PW)
-            DO ji = 1, jpi
+            DO ji = 2, jpi
                z2d(ji,:) = z2d(1,:)
             ENDDO
@@ -207,5 +213,5 @@
             CALL iom_put( TRIM(cl1), z2d )
             z2d(1,:) = str_btr(:,1) * rc_ggram        !  (conversion in Gg)
-            DO ji = 1, jpi
+            DO ji = 2, jpi
               z2d(ji,:) = z2d(1,:)
             ENDDO
@@ -217,6 +223,9 @@
                     r1_sjk(:,1,jn) = 0._wp
                     WHERE( sjk(:,1,jn) /= 0._wp )   r1_sjk(:,1,jn) = 1._wp / sjk(:,1,jn)
-                    htr_btr(:,jn) = ptr_sj( zvn(:,:,:), btmsk(:,:,jn) ) * ptr_sj( zts(:,:,:,jp_tem), btmsk(:,:,jn) )*r1_sjk(:,1,jn)
-                    str_btr(:,jn) = ptr_sj( zvn(:,:,:), btmsk(:,:,jn) ) * ptr_sj( zts(:,:,:,jp_sal), btmsk(:,:,jn) )*r1_sjk(:,1,jn)
+                    vsum = ptr_sj( zvn(:,:,:), btmsk(:,:,jn))
+                    tssum(:,jp_tem) = ptr_sj( zts(:,:,:,jp_tem), btmsk(:,:,jn) )
+                    tssum(:,jp_sal) = ptr_sj( zts(:,:,:,jp_sal), btmsk(:,:,jn) )
+                    htr_btr(:,jn) = vsum * tssum(:,jp_tem) * r1_sjk(:,1,jn)
+                    str_btr(:,jn) = vsum * tssum(:,jp_sal) * r1_sjk(:,1,jn)
                     z2d(1,:) = htr_btr(:,jn) * rc_pwatt !  (conversion in PW)
                     DO ji = 1, jpi
@@ -586,4 +595,5 @@
          &      htr_vt(jpj,nptr)  , str_vs(jpj,nptr)  ,   &
          &      htr_ove(jpj,nptr) , str_ove(jpj,nptr) ,   &
+         &      htr_btr(jpj,nptr) , str_btr(jpj,nptr) ,   &
          &      htr_ldf(jpj,nptr) , str_ldf(jpj,nptr) , STAT=ierr(1)  )
          !
Index: branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_eiv.F90
===================================================================
--- branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_eiv.F90	(revision 6903)
+++ branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_eiv.F90	(revision 6910)
@@ -174,5 +174,5 @@
             z2d(:,:) = 0.e0
             DO jk = 1, jpkm1
-               z3d(:,:,jk) = rau0 * un(:,:,jk) * e2u(:,:) * fse3u(:,:,jk) * umask(:,:,jk)
+               z3d(:,:,jk) = rau0 * u_eiv(:,:,jk) * e2u(:,:) * fse3u(:,:,jk) * umask(:,:,jk)
                z2d(:,:) = z2d(:,:) + z3d(:,:,jk)
             END DO
@@ -181,5 +181,5 @@
 
          IF( iom_use('ueiv_heattr') ) THEN
-            zztmp = 0.5 * rau0 * rcp 
+            zztmp = 0.5 * rcp 
             z2d(:,:) = 0.e0 
             DO jk = 1, jpkm1
@@ -198,5 +198,5 @@
             z2d(:,:) = 0.e0
             DO jk = 1, jpkm1
-               z3d(:,:,jk) = rau0 * vn(:,:,jk) * e1v(:,:) * fse3v(:,:,jk) * vmask(:,:,jk)
+               z3d(:,:,jk) = rau0 * v_eiv(:,:,jk) * e1v(:,:) * fse3v(:,:,jk) * vmask(:,:,jk)
             END DO
             CALL iom_put( "veiv_masstr", z3d )                  ! mass transport in j-direction
@@ -204,4 +204,5 @@
             
          IF( iom_use('veiv_heattr') ) THEN
+            zztmp = 0.5 * rcp 
             z2d(:,:) = 0.e0 
             DO jk = 1, jpkm1
@@ -213,5 +214,5 @@
             END DO
             CALL lbc_lnk( z2d, 'V', -1. )
-            CALL iom_put( "veiv_heattr", zztmp * z2d )                  !  heat transport in i-direction
+            CALL iom_put( "veiv_heattr", zztmp * z2d )                  !  heat transport in j-direction
          ENDIF
     END IF
Index: branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_tvd.F90
===================================================================
--- branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_tvd.F90	(revision 6903)
+++ branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_tvd.F90	(revision 6910)
@@ -87,5 +87,5 @@
       REAL(wp) ::   zfm_ui, zfm_vj, zfm_wk   !   -      -
       REAL(wp), POINTER, DIMENSION(:,:,:) :: zwi, zwz
-      REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdx, ztrdy, ztrdz, z2d, zptry
+      REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdx, ztrdy, ztrdz, zptry
       REAL(wp), POINTER, DIMENSION(:,:)   :: z2d
       !!----------------------------------------------------------------------
