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/TRA – 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

Location:
branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_cen2.F90

    r6427 r6428  
    280280         !                                 ! "Poleward" heat and salt transports (contribution of upstream fluxes) 
    281281         IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN   
    282            IF( jn == jp_tem )   htr_adv(:) = ptr_sj( zwy(:,:,:) ) 
    283            IF( jn == jp_sal )   str_adv(:) = ptr_sj( zwy(:,:,:) ) 
     282           IF( jn == jp_tem )  CALL dia_ptr_ohst_components( zwy(:,:,:), htr_adv(:,:) ) 
     283           IF( jn == jp_sal )  CALL dia_ptr_ohst_components( zwy(:,:,:), str_adv(:,:) ) 
    284284         ENDIF 
    285285         ! 
  • branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl.F90

    r6427 r6428  
    220220         !                                 ! "Poleward" heat and salt transports (contribution of upstream fluxes) 
    221221         IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN   
    222             IF( jn == jp_tem )  htr_adv(:) = ptr_sj( zwy(:,:,:) ) 
    223             IF( jn == jp_sal )  str_adv(:) = ptr_sj( zwy(:,:,:) ) 
     222           IF( jn == jp_tem )  CALL dia_ptr_ohst_components( zwy(:,:,:), htr_adv(:,:) ) 
     223           IF( jn == jp_sal )  CALL dia_ptr_ohst_components( zwy(:,:,:), str_adv(:,:) ) 
    224224         ENDIF 
    225225 
  • branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl2.F90

    r6427 r6428  
    201201         !                                 ! "Poleward" heat and salt transports (contribution of upstream fluxes) 
    202202         IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 
    203             IF( jn == jp_tem )  htr_adv(:) = ptr_sj( zwy(:,:,:) ) 
    204             IF( jn == jp_sal )  str_adv(:) = ptr_sj( zwy(:,:,:) ) 
     203            IF( jn == jp_tem )  CALL dia_ptr_ohst_components( zwy(:,:,:), htr_adv(:,:) ) 
     204            IF( jn == jp_sal )  CALL dia_ptr_ohst_components( zwy(:,:,:), str_adv(:,:) ) 
    205205         ENDIF 
    206206 
  • branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90

    r6427 r6428  
    356356         !                                 ! "Poleward" heat and salt transports (contribution of upstream fluxes) 
    357357         IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN   
    358            IF( jn == jp_tem )  htr_adv(:) = ptr_sj( zwy(:,:,:) ) 
    359            IF( jn == jp_sal )  str_adv(:) = ptr_sj( zwy(:,:,:) ) 
     358           IF( jn == jp_tem )  CALL dia_ptr_ohst_components( zwy(:,:,:), htr_adv(:,:) ) 
     359           IF( jn == jp_sal )  CALL dia_ptr_ohst_components( zwy(:,:,:), str_adv(:,:) ) 
    360360         ENDIF 
    361361         ! 
  • branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_tvd.F90

    r6427 r6428  
    8686      REAL(wp), POINTER, DIMENSION(:,:,:) :: zwi, zwz 
    8787      REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdx, ztrdy, ztrdz 
     88      REAL(wp), POINTER, DIMENSION(:,:) :: ptr_adv_tmp 
    8889      !!---------------------------------------------------------------------- 
    8990      ! 
     
    104105         CALL wrk_alloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz ) 
    105106         ztrdx(:,:,:) = 0.e0   ;    ztrdy(:,:,:) = 0.e0   ;   ztrdz(:,:,:) = 0.e0 
     107      ENDIF 
     108      ! 
     109      IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN   
     110         CALL wrk_alloc( jpi, nptr, ptr_adv_tmp ) 
     111         ptr_adv_tmp(:,:) = 0._wp 
    106112      ENDIF 
    107113      ! 
     
    194200         !                                 ! "Poleward" heat and salt transports (contribution of upstream fluxes) 
    195201         IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN   
    196            IF( jn == jp_tem )  htr_adv(:) = ptr_sj( zwy(:,:,:) ) 
    197            IF( jn == jp_sal )  str_adv(:) = ptr_sj( zwy(:,:,:) ) 
     202           CALL dia_ptr_ohst_components( zwy(:,:,:), ptr_adv_tmp(:,:)  ) 
    198203         ENDIF 
    199204 
     
    265270         !                                 ! "Poleward" heat and salt transports (contribution of upstream fluxes) 
    266271         IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN   
    267            IF( jn == jp_tem )  htr_adv(:) = ptr_sj( zwy(:,:,:) ) + htr_adv(:) 
    268            IF( jn == jp_sal )  str_adv(:) = ptr_sj( zwy(:,:,:) ) + str_adv(:) 
     272           IF( jn == jp_tem ) THEN  
     273              CALL dia_ptr_ohst_components( zwy(:,:,:), htr_adv(:,:)  ) 
     274              htr_adv(:,:) = htr_adv(:,:) + ptr_adv_tmp(:,:) 
     275           ENDIF 
     276           IF( jn == jp_sal )  THEN 
     277              CALL dia_ptr_ohst_components( zwy(:,:,:), str_adv(:,:)  ) 
     278              htr_adv(:,:) = htr_adv(:,:) + ptr_adv_tmp(:,:) 
     279           ENDIF 
     280           ptr_adv_tmp(:,:) = 0._wp 
    269281         ENDIF 
    270282         ! 
     
    273285                   CALL wrk_dealloc( jpi, jpj, jpk, zwi, zwz ) 
    274286      IF( l_trd )  CALL wrk_dealloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz ) 
     287      IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN wrk_dealloc( jpi, nptr, ptr_adv_tmp ) 
    275288      ! 
    276289      IF( nn_timing == 1 )  CALL timing_stop('tra_adv_tvd') 
     
    342355      ENDIF 
    343356      ! 
     357      IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN   
     358         CALL wrk_alloc( jpi, nptr, ptr_adv_tmp ) 
     359         ptr_adv_tmp(:,:) = 0._wp 
     360      ENDIF 
     361      ! 
    344362      zwi(:,:,:) = 0._wp 
    345363      z_rzts = 1._wp / REAL( jnzts, wp ) 
     
    431449         !                                 ! "Poleward" heat and salt transports (contribution of upstream fluxes) 
    432450         IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN   
    433            IF( jn == jp_tem )  htr_adv(:) = ptr_sj( zwy(:,:,:) ) 
    434            IF( jn == jp_sal )  str_adv(:) = ptr_sj( zwy(:,:,:) ) 
     451           CALL dia_ptr_ohst_components( zwy(:,:,:), ptr_adv_tmp(:,:)  ) 
    435452         ENDIF 
    436453 
     
    557574         !                                 ! "Poleward" heat and salt transports (contribution of upstream fluxes) 
    558575         IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN   
    559            IF( jn == jp_tem )  htr_adv(:) = ptr_sj( zwy(:,:,:) ) + htr_adv(:) 
    560            IF( jn == jp_sal )  str_adv(:) = ptr_sj( zwy(:,:,:) ) + str_adv(:) 
     576           IF( jn == jp_tem ) THEN  
     577              CALL dia_ptr_ohst_components( zwy(:,:,:), htr_adv(:,:)  ) 
     578              htr_adv(:,:) = htr_adv(:,:) + ptr_adv_tmp(:,:) 
     579           ENDIF 
     580           IF( jn == jp_sal )  THEN 
     581              CALL dia_ptr_ohst_components( zwy(:,:,:), str_adv(:,:)  ) 
     582              htr_adv(:,:) = htr_adv(:,:) + ptr_adv_tmp(:,:) 
     583           ENDIF 
     584           ptr_adv_tmp(:,:) = 0._wp 
    561585         ENDIF 
    562586         ! 
     
    567591                   CALL wrk_dealloc( jpi, jpj, zwx_sav, zwy_sav ) 
    568592      IF( l_trd )  CALL wrk_dealloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz ) 
     593      IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN wrk_dealloc( jpi, nptr, ptr_adv_tmp ) 
    569594      ! 
    570595      IF( nn_timing == 1 )  CALL timing_stop('tra_adv_tvd_zts') 
  • branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_ubs.F90

    r6427 r6428  
    178178         !                                 ! "Poleward" heat and salt transports (contribution of upstream fluxes) 
    179179         IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN   
    180             IF( jn == jp_tem )  htr_adv(:) = ptr_sj( ztv(:,:,:) ) 
    181             IF( jn == jp_sal )  str_adv(:) = ptr_sj( ztv(:,:,:) ) 
     180           IF( jn == jp_tem )  CALL dia_ptr_ohst_components( ztv(:,:,:), htr_adv(:,:) ) 
     181           IF( jn == jp_sal )  CALL dia_ptr_ohst_components( ztv(:,:,:), str_adv(:,:) ) 
    182182         ENDIF 
    183183          
  • branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_bilap.F90

    r6427 r6428  
    174174         ! "zonal" mean lateral diffusive heat and salt transport 
    175175         IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN   
    176            IF( jn == jp_tem )  htr_ldf(:) = ptr_sj( ztv(:,:,:) ) 
    177            IF( jn == jp_sal )  str_ldf(:) = ptr_sj( ztv(:,:,:) ) 
     176           IF( jn == jp_tem )  CALL dia_ptr_ohst_components( ztv(:,:,:),htr_ldf(:,:) ) 
     177           IF( jn == jp_sal )  CALL dia_ptr_ohst_components( ztv(:,:,:),str_ldf(:,:) ) 
    178178         ENDIF 
    179179         !                                                ! =========== 
  • branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_bilapg.F90

    r6427 r6428  
    249249         IF( cdtype == 'TRA' .AND. ln_diaptr .AND. ( kaht == 2 ) ) THEN 
    250250            ! note sign is reversed to give down-gradient diffusive transports (#1043) 
    251             IF( jn == jp_tem)   htr_ldf(:) = ptr_sj( -zftv(:,:,:) ) 
    252             IF( jn == jp_sal)   str_ldf(:) = ptr_sj( -zftv(:,:,:) ) 
     251            IF( jn == jp_tem )  CALL dia_ptr_ohst_components( -zftv(:,:,:),htr_ldf(:,:) ) 
     252            IF( jn == jp_sal )  CALL dia_ptr_ohst_components( -zftv(:,:,:),str_ldf(:,:) ) 
    253253         ENDIF 
    254254 
  • branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso.F90

    r6427 r6428  
    237237         IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 
    238238            ! note sign is reversed to give down-gradient diffusive transports (#1043) 
    239             IF( jn == jp_tem)   htr_ldf(:) = ptr_sj( -zftv(:,:,:) ) 
    240             IF( jn == jp_sal)   str_ldf(:) = ptr_sj( -zftv(:,:,:) ) 
     239            IF( jn == jp_tem )  CALL dia_ptr_ohst_components( -zftv(:,:,:),htr_ldf(:,:) ) 
     240            IF( jn == jp_sal )  CALL dia_ptr_ohst_components( -zftv(:,:,:),str_ldf(:,:) ) 
    241241         ENDIF 
    242242  
  • branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso_grif.F90

    r6427 r6428  
    387387         !                             ! "Poleward" diffusive heat or salt transports (T-S case only) 
    388388         IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 
    389             IF( jn == jp_tem)   htr_ldf(:) = ptr_sj( zftv(:,:,:) )        ! 3.3  names 
    390             IF( jn == jp_sal)   str_ldf(:) = ptr_sj( zftv(:,:,:) ) 
     389            IF( jn == jp_tem )  CALL dia_ptr_ohst_components( zftv(:,:,:),htr_ldf(:,:) ) 
     390            IF( jn == jp_sal )  CALL dia_ptr_ohst_components( zftv(:,:,:),str_ldf(:,:) ) 
    391391         ENDIF 
    392392 
  • branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_lap.F90

    r6427 r6428  
    155155         ! "Poleward" diffusive heat or salt transports 
    156156         IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 
    157             IF( jn  == jp_tem)   htr_ldf(:) = ptr_sj( ztv(:,:,:) ) 
    158             IF( jn  == jp_sal)   str_ldf(:) = ptr_sj( ztv(:,:,:) ) 
     157           IF( jn == jp_tem )  CALL dia_ptr_ohst_components( ztv(:,:,:),htr_ldf(:,:) ) 
     158           IF( jn == jp_sal )  CALL dia_ptr_ohst_components( ztv(:,:,:),str_ldf(:,:) ) 
    159159         ENDIF 
    160160         !                                                  ! ================== 
Note: See TracChangeset for help on using the changeset viewer.