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

Ignore:
Timestamp:
2016-04-05T16:48:36+02:00 (8 years ago)
Author:
timgraham
Message:

Added advective and diffusive heat transport by basin to diaptr module

File:
1 edited

Legend:

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

    r6427 r6428  
    4040 
    4141   !                                  !!** namelist  namptr  ** 
    42    REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:) ::   htr_adv, htr_ldf   !: Heat TRansports (adv, diff, overturn.) 
    43    REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:) ::   str_adv, str_ldf   !: Salt TRansports (adv, diff, overturn.) 
     42   REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) ::   htr_adv, htr_ldf   !: Heat TRansports (adv, diff, overturn.) 
     43   REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) ::   str_adv, str_ldf   !: Salt TRansports (adv, diff, overturn.) 
    4444    
    4545 
     
    256256         ! Initialise arrays to zero because diatpr is called before they are first calculated 
    257257         ! Note that this means diagnostics will not be exactly correct when model run is restarted. 
    258          htr_adv(:) = 0._wp  ;  str_adv(:) =  0._wp   
    259          htr_ldf(:) = 0._wp  ;  str_ldf(:) =  0._wp  
     258         htr_adv(:,:) = 0._wp  ;  str_adv(:,:) =  0._wp   
     259         htr_ldf(:,:) = 0._wp  ;  str_ldf(:,:) =  0._wp  
    260260         ! 
    261261      ENDIF  
     
    263263   END SUBROUTINE dia_ptr_init 
    264264 
     265   SUBROUTINE dia_ptr_ohst_components( pva, ptr )  
     266      !!---------------------------------------------------------------------- 
     267      !!                    ***  ROUTINE dia_ptr_oht_components  *** 
     268      !!---------------------------------------------------------------------- 
     269      !! Wrapper for heat and salt transport calculations to calculate them 
     270      !! for each basin 
     271      !! Called from all advection and/or diffusion routines 
     272      INTEGER                          :: jn 
     273      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(IN) :: pva   ! 3D input array of advection/diffusion 
     274      REAL(wp), DIMENSION(jpi,nptr), INTENT(OUT)   :: ptr   ! zonal & vertical sum 
     275       
     276      ptr(:, 1) = ptr_sj( pva(:,:,:) ) 
     277      IF( ln_subbas ) THEN 
     278         DO jn=2,nptr 
     279            ptr(:,jn) = ptr_sj( pva(:,:,:), btmsk(:,:,jn) ) 
     280         END DO 
     281      ENDIF 
     282 
     283   END SUBROUTINE 
     284 
    265285 
    266286   FUNCTION dia_ptr_alloc() 
     
    274294      ! 
    275295      ALLOCATE( btmsk(jpi,jpj,nptr) ,           & 
    276          &      htr_adv(jpj) , str_adv(jpj) ,   & 
    277          &      htr_ldf(jpj) , str_ldf(jpj) , STAT=ierr(1)  ) 
     296         &      htr_adv(jpj,nptr) , str_adv(jpj,nptr) ,   & 
     297         &      htr_ldf(jpj,nptr) , str_ldf(jpj,nptr) , STAT=ierr(1)  ) 
    278298         ! 
    279299      ALLOCATE( p_fval1d(jpj), p_fval2d(jpj,jpk), Stat=ierr(2)) 
Note: See TracChangeset for help on using the changeset viewer.