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 6697 for branches/UKMO/dev_r5518_GO6_package_MEDUSA_temporary/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90 – NEMO

Ignore:
Timestamp:
2016-06-13T17:08:32+02:00 (8 years ago)
Author:
frrh
Message:

Merge corrections for bit reproducibility of ice mass balance coupling fields
from dev_r5518_fix_global_ice revision 6343

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_GO6_package_MEDUSA_temporary/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r6498 r6697  
    4949   USE limthd_dh       ! for CALL lim_thd_snwblow 
    5050#endif 
     51   USE lib_fortran, ONLY: glob_sum 
    5152 
    5253   IMPLICIT NONE 
     
    12731274      zepsilon = rn_iceshelf_fluxes_tolerance 
    12741275 
     1276 
     1277      ! See if we need zmask_sum... 
     1278      IF ( srcv(jpr_grnm)%laction .OR. srcv(jpr_antm)%laction ) THEN 
     1279         zmask_sum = glob_sum( tmask(:,:,1) ) 
     1280      ENDIF 
     1281 
    12751282      IF( srcv(jpr_grnm)%laction ) THEN 
    12761283         greenland_icesheet_mass_array(:,:) = frcv(jpr_grnm)%z3(:,:,1) 
    12771284         ! take average over ocean points of input array to avoid cumulative error over time 
    1278          zgreenland_icesheet_mass_in = SUM( greenland_icesheet_mass_array(:,:) * tmask(:,:,1) ) 
    1279          IF(lk_mpp) CALL mpp_sum( zgreenland_icesheet_mass_in ) 
    1280          zmask_sum = SUM( tmask(:,:,1) ) 
    1281          IF(lk_mpp) CALL mpp_sum( zmask_sum )  
     1285 
     1286         ! The following must be bit reproducible over different PE decompositions 
     1287         zgreenland_icesheet_mass_in = glob_sum( greenland_icesheet_mass_array(:,:) * tmask(:,:,1) ) 
     1288 
    12821289         zgreenland_icesheet_mass_in = zgreenland_icesheet_mass_in / zmask_sum 
    12831290         greenland_icesheet_timelapsed = greenland_icesheet_timelapsed + rdt          
     
    13041311         antarctica_icesheet_mass_array(:,:) = frcv(jpr_antm)%z3(:,:,1) 
    13051312         ! take average over ocean points of input array to avoid cumulative error from rounding errors over time 
    1306          zantarctica_icesheet_mass_in = SUM( antarctica_icesheet_mass_array(:,:) * tmask(:,:,1) ) 
    1307          IF(lk_mpp) CALL mpp_sum( zantarctica_icesheet_mass_in ) 
    1308          zmask_sum = SUM( tmask(:,:,1) ) 
    1309          IF(lk_mpp) CALL mpp_sum( zmask_sum )  
     1313         ! The following must be bit reproducible over different PE decompositions 
     1314         zantarctica_icesheet_mass_in = glob_sum( antarctica_icesheet_mass_array(:,:) * tmask(:,:,1) ) 
     1315 
    13101316         zantarctica_icesheet_mass_in = zantarctica_icesheet_mass_in / zmask_sum 
    13111317         antarctica_icesheet_timelapsed = antarctica_icesheet_timelapsed + rdt          
Note: See TracChangeset for help on using the changeset viewer.