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 10314 for NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DIA/diahsb.F90 – NEMO

Ignore:
Timestamp:
2018-11-15T17:27:18+01:00 (5 years ago)
Author:
smasson
Message:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 2: add generic glob_min/max/sum and locmin/max, complete timing and report (including bdy and icb), see #2133

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DIA/diahsb.F90

    r10068 r10314  
    9191      ! 1 - Trends due to forcing ! 
    9292      ! ------------------------- ! 
    93       z_frc_trd_v = r1_rau0 * glob_sum( - ( emp(:,:) - rnf(:,:) + fwfisf(:,:) ) * surf(:,:) )   ! volume fluxes 
    94       z_frc_trd_t =           glob_sum( sbc_tsc(:,:,jp_tem) * surf(:,:) )                       ! heat fluxes 
    95       z_frc_trd_s =           glob_sum( sbc_tsc(:,:,jp_sal) * surf(:,:) )                       ! salt fluxes 
     93      z_frc_trd_v = r1_rau0 * glob_sum( 'diahsb', - ( emp(:,:) - rnf(:,:) + fwfisf(:,:) ) * surf(:,:) )   ! volume fluxes 
     94      z_frc_trd_t =           glob_sum( 'diahsb', sbc_tsc(:,:,jp_tem) * surf(:,:) )                       ! heat fluxes 
     95      z_frc_trd_s =           glob_sum( 'diahsb', sbc_tsc(:,:,jp_sal) * surf(:,:) )                       ! salt fluxes 
    9696      !                    !  Add runoff    heat & salt input 
    97       IF( ln_rnf    )   z_frc_trd_t = z_frc_trd_t + glob_sum( rnf_tsc(:,:,jp_tem) * surf(:,:) ) 
    98       IF( ln_rnf_sal)   z_frc_trd_s = z_frc_trd_s + glob_sum( rnf_tsc(:,:,jp_sal) * surf(:,:) ) 
     97      IF( ln_rnf    )   z_frc_trd_t = z_frc_trd_t + glob_sum( 'diahsb', rnf_tsc(:,:,jp_tem) * surf(:,:) ) 
     98      IF( ln_rnf_sal)   z_frc_trd_s = z_frc_trd_s + glob_sum( 'diahsb', rnf_tsc(:,:,jp_sal) * surf(:,:) ) 
    9999      !                    ! Add ice shelf heat & salt input 
    100       IF( ln_isf    )   z_frc_trd_t = z_frc_trd_t + glob_sum( risf_tsc(:,:,jp_tem) * surf(:,:) ) 
     100      IF( ln_isf    )   z_frc_trd_t = z_frc_trd_t + glob_sum( 'diahsb', risf_tsc(:,:,jp_tem) * surf(:,:) ) 
    101101      !                    ! Add penetrative solar radiation 
    102       IF( ln_traqsr )   z_frc_trd_t = z_frc_trd_t + r1_rau0_rcp * glob_sum( qsr     (:,:) * surf(:,:) ) 
     102      IF( ln_traqsr )   z_frc_trd_t = z_frc_trd_t + r1_rau0_rcp * glob_sum( 'diahsb', qsr     (:,:) * surf(:,:) ) 
    103103      !                    ! Add geothermal heat flux 
    104       IF( ln_trabbc )   z_frc_trd_t = z_frc_trd_t +               glob_sum( qgh_trd0(:,:) * surf(:,:) ) 
     104      IF( ln_trabbc )   z_frc_trd_t = z_frc_trd_t +               glob_sum( 'diahsb', qgh_trd0(:,:) * surf(:,:) ) 
    105105      ! 
    106106      IF( ln_linssh ) THEN 
     
    116116            z2d1(:,:) = surf(:,:) * wn(:,:,1) * tsb(:,:,1,jp_sal) 
    117117         END IF 
    118          z_wn_trd_t = - glob_sum( z2d0 )  
    119          z_wn_trd_s = - glob_sum( z2d1 ) 
     118         z_wn_trd_t = - glob_sum( 'diahsb', z2d0 )  
     119         z_wn_trd_s = - glob_sum( 'diahsb', z2d1 ) 
    120120      ENDIF 
    121121 
     
    135135 
    136136      !                    ! volume variation (calculated with ssh) 
    137       zdiff_v1 = glob_sum_full( surf(:,:)*sshn(:,:) - surf_ini(:,:)*ssh_ini(:,:) ) 
     137      zdiff_v1 = glob_sum_full( 'diahsb', surf(:,:)*sshn(:,:) - surf_ini(:,:)*ssh_ini(:,:) ) 
    138138 
    139139      !                    ! heat & salt content variation (associated with ssh) 
     
    150150            z2d1(:,:) = surf(:,:) * ( tsn(:,:,1,jp_sal) * sshn(:,:) - ssh_sc_loc_ini(:,:) )  
    151151         END IF 
    152          z_ssh_hc = glob_sum_full( z2d0 )  
    153          z_ssh_sc = glob_sum_full( z2d1 )  
    154       ENDIF 
    155       ! 
    156       DO jk = 1, jpkm1     ! volume variation (calculated with scale factors) 
     152         z_ssh_hc = glob_sum_full( 'diahsb', z2d0 )  
     153         z_ssh_sc = glob_sum_full( 'diahsb', z2d1 )  
     154      ENDIF 
     155      ! 
     156      DO jk = 1, jpkm1           ! volume variation (calculated with scale factors) 
    157157         zwrk(:,:,jk) = ( surf(:,:)*e3t_n(:,:,jk) - surf_ini(:,:)*e3t_ini(:,:,jk) ) * tmask(:,:,jk) 
    158158      END DO 
    159       zdiff_v2 = glob_sum_full( zwrk(:,:,:) ) 
     159      zdiff_v2 = glob_sum_full( 'diahsb', zwrk(:,:,:) ) 
    160160      DO jk = 1, jpkm1           ! heat content variation 
    161161         zwrk(:,:,jk) = ( surf(:,:)*e3t_n(:,:,jk)*tsn(:,:,jk,jp_tem) - surf_ini(:,:)*hc_loc_ini(:,:,jk) ) * tmask(:,:,jk) 
    162162      END DO 
    163       zdiff_hc = glob_sum_full( zwrk(:,:,:) ) 
     163      zdiff_hc = glob_sum_full( 'diahsb', zwrk(:,:,:) ) 
    164164      DO jk = 1, jpkm1           ! salt content variation 
    165165         zwrk(:,:,jk) = ( surf(:,:)*e3t_n(:,:,jk)*tsn(:,:,jk,jp_sal) - surf_ini(:,:)*sc_loc_ini(:,:,jk) ) * tmask(:,:,jk) 
    166166      END DO 
    167       zdiff_sc = glob_sum_full( zwrk(:,:,:) ) 
     167      zdiff_sc = glob_sum_full( 'diahsb', zwrk(:,:,:) ) 
    168168 
    169169      ! ------------------------ ! 
     
    187187         zwrk(:,:,jk) = surf(:,:) * e3t_n(:,:,jk) * tmask(:,:,jk) 
    188188      END DO 
    189       zvol_tot = glob_sum_full( zwrk(:,:,:) ) 
     189      zvol_tot = glob_sum_full( 'diahsb', zwrk(:,:,:) ) 
    190190 
    191191!!gm to be added ? 
    192192!      IF( ln_linssh ) THEN            ! fixed volume, add the ssh contribution 
    193 !        zvol_tot = zvol_tot + glob_sum( surf(:,:) * sshn(:,:) ) 
     193!        zvol_tot = zvol_tot + glob_sum( 'diahsb', surf(:,:) * sshn(:,:) ) 
    194194!      ENDIF 
    195195!!gm end 
     
    409409      ! 2 - Time independant variables and file opening ! 
    410410      ! ----------------------------------------------- ! 
    411       surf(:,:) = e1e2t(:,:) * tmask_i(:,:)     ! masked surface grid cell area 
    412       surf_tot  = glob_sum( surf(:,:) )         ! total ocean surface area 
     411      surf(:,:) = e1e2t(:,:) * tmask_i(:,:)               ! masked surface grid cell area 
     412      surf_tot  = glob_sum( 'diahsb', surf(:,:) )         ! total ocean surface area 
    413413 
    414414      IF( ln_bdy ) CALL ctl_warn( 'dia_hsb_init: heat/salt budget does not consider open boundary fluxes' )          
Note: See TracChangeset for help on using the changeset viewer.