Skip to content

Commit

Permalink
Fix single channel debug failure, Update github actions testing (CICE…
Browse files Browse the repository at this point in the history
…-Consortium#922)

* update ghactions testing

* refactor min/max global reductions, code away from huge which was giving MPI some problems.
  • Loading branch information
apcraig authored and DeniseWorthen committed Apr 7, 2024
1 parent ccdad48 commit 45e033c
Show file tree
Hide file tree
Showing 5 changed files with 59 additions and 41 deletions.
1 change: 0 additions & 1 deletion .github/workflows/test-cice.yml
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,6 @@ jobs:
run: |
cd $HOME/cice-dirs/input
wget --progress=dot:giga https://zenodo.org/record/3728358/files/CICE_data_gx3_grid_ic-20200320.tar.gz && tar xvfz CICE_data_gx3_grid_ic-20200320.tar.gz
wget --progress=dot:giga https://zenodo.org/record/3728362/files/CICE_data_gx3_forcing_NCAR_bulk-20200320.tar.gz && tar xvfz CICE_data_gx3_forcing_NCAR_bulk-20200320.tar.gz
wget --progress=dot:giga https://zenodo.org/record/3728364/files/CICE_data_gx3_forcing_JRA55-20200320.tar.gz && tar xvfz CICE_data_gx3_forcing_JRA55-20200320.tar.gz
pwd
ls -alR
Expand Down
45 changes: 27 additions & 18 deletions cicecore/cicedyn/infrastructure/comm/mpi/ice_global_reductions.F90
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,15 @@ module ice_global_reductions
global_maxval, &
global_minval

real (kind=dbl_kind), parameter :: &
bigdbl = 1.0e36_dbl_kind

real (kind=real_kind), parameter :: &
bigreal = 1.0e36_real_kind

real (kind=int_kind), parameter :: &
bigint = 9999999

!-----------------------------------------------------------------------
!
! generic interfaces for module procedures
Expand Down Expand Up @@ -1246,8 +1255,8 @@ function global_maxval_dbl (array, dist, lMask) &

!-----------------------------------------------------------------------

localMaxval = -HUGE(0.0_dbl_kind)
globalMaxval = -HUGE(0.0_dbl_kind)
localMaxval = -bigdbl
globalMaxval = -bigdbl

call ice_distributionGet(dist, &
numLocalBlocks = numBlocks, &
Expand All @@ -1264,7 +1273,7 @@ function global_maxval_dbl (array, dist, lMask) &
jb = this_block%jlo
je = this_block%jhi

blockMaxval = -HUGE(0.0_dbl_kind)
blockMaxval = -bigdbl

if (present(lMask)) then
do j=jb,je
Expand Down Expand Up @@ -1353,8 +1362,8 @@ function global_maxval_real (array, dist, lMask) &

!-----------------------------------------------------------------------

localMaxval = -HUGE(0.0_real_kind)
globalMaxval = -HUGE(0.0_real_kind)
localMaxval = -bigreal
globalMaxval = -bigreal

call ice_distributionGet(dist, &
numLocalBlocks = numBlocks, &
Expand All @@ -1371,7 +1380,7 @@ function global_maxval_real (array, dist, lMask) &
jb = this_block%jlo
je = this_block%jhi

blockMaxval = -HUGE(0.0_real_kind)
blockMaxval = -bigreal

if (present(lMask)) then
do j=jb,je
Expand Down Expand Up @@ -1460,8 +1469,8 @@ function global_maxval_int (array, dist, lMask) &

!-----------------------------------------------------------------------

localMaxval = -HUGE(0_int_kind)
globalMaxval = -HUGE(0_int_kind)
localMaxval = -bigint
globalMaxval = -bigint

call ice_distributionGet(dist, &
numLocalBlocks = numBlocks, &
Expand All @@ -1478,7 +1487,7 @@ function global_maxval_int (array, dist, lMask) &
jb = this_block%jlo
je = this_block%jhi

blockMaxval = -HUGE(0_int_kind)
blockMaxval = -bigint

if (present(lMask)) then
do j=jb,je
Expand Down Expand Up @@ -1791,8 +1800,8 @@ function global_minval_dbl (array, dist, lMask) &

!-----------------------------------------------------------------------

localMinval = HUGE(0.0_dbl_kind)
globalMinval = HUGE(0.0_dbl_kind)
localMinval = bigdbl
globalMinval = bigdbl

call ice_distributionGet(dist, &
numLocalBlocks = numBlocks, &
Expand All @@ -1809,7 +1818,7 @@ function global_minval_dbl (array, dist, lMask) &
jb = this_block%jlo
je = this_block%jhi

blockMinval = HUGE(0.0_dbl_kind)
blockMinval = bigdbl

if (present(lMask)) then
do j=jb,je
Expand Down Expand Up @@ -1898,8 +1907,8 @@ function global_minval_real (array, dist, lMask) &

!-----------------------------------------------------------------------

localMinval = HUGE(0.0_real_kind)
globalMinval = HUGE(0.0_real_kind)
localMinval = bigreal
globalMinval = bigreal

call ice_distributionGet(dist, &
numLocalBlocks = numBlocks, &
Expand All @@ -1916,7 +1925,7 @@ function global_minval_real (array, dist, lMask) &
jb = this_block%jlo
je = this_block%jhi

blockMinval = HUGE(0.0_real_kind)
blockMinval = bigreal

if (present(lMask)) then
do j=jb,je
Expand Down Expand Up @@ -2005,8 +2014,8 @@ function global_minval_int (array, dist, lMask) &

!-----------------------------------------------------------------------

localMinval = HUGE(0_int_kind)
globalMinval = HUGE(0_int_kind)
localMinval = bigint
globalMinval = bigint

call ice_distributionGet(dist, &
numLocalBlocks = numBlocks, &
Expand All @@ -2023,7 +2032,7 @@ function global_minval_int (array, dist, lMask) &
jb = this_block%jlo
je = this_block%jhi

blockMinval = HUGE(0_int_kind)
blockMinval = bigint

if (present(lMask)) then
do j=jb,je
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,15 @@ module ice_global_reductions
global_maxval, &
global_minval

real (kind=dbl_kind), parameter :: &
bigdbl = 1.0e36_dbl_kind

real (kind=real_kind), parameter :: &
bigreal = 1.0e36_real_kind

real (kind=int_kind), parameter :: &
bigint = 9999999

!-----------------------------------------------------------------------
!
! generic interfaces for module procedures
Expand Down Expand Up @@ -1247,8 +1256,8 @@ function global_maxval_dbl (array, dist, lMask) &

!-----------------------------------------------------------------------

localMaxval = -HUGE(0.0_dbl_kind)
globalMaxval = -HUGE(0.0_dbl_kind)
localMaxval = -bigdbl
globalMaxval = -bigdbl

call ice_distributionGet(dist, &
numLocalBlocks = numBlocks, &
Expand All @@ -1265,7 +1274,7 @@ function global_maxval_dbl (array, dist, lMask) &
jb = this_block%jlo
je = this_block%jhi

blockMaxval = -HUGE(0.0_dbl_kind)
blockMaxval = -bigdbl

if (present(lMask)) then
do j=jb,je
Expand Down Expand Up @@ -1354,8 +1363,8 @@ function global_maxval_real (array, dist, lMask) &

!-----------------------------------------------------------------------

localMaxval = -HUGE(0.0_real_kind)
globalMaxval = -HUGE(0.0_real_kind)
localMaxval = -bigreal
globalMaxval = -bigreal

call ice_distributionGet(dist, &
numLocalBlocks = numBlocks, &
Expand All @@ -1372,7 +1381,7 @@ function global_maxval_real (array, dist, lMask) &
jb = this_block%jlo
je = this_block%jhi

blockMaxval = -HUGE(0.0_real_kind)
blockMaxval = -bigreal

if (present(lMask)) then
do j=jb,je
Expand Down Expand Up @@ -1461,8 +1470,8 @@ function global_maxval_int (array, dist, lMask) &

!-----------------------------------------------------------------------

localMaxval = -HUGE(0_int_kind)
globalMaxval = -HUGE(0_int_kind)
localMaxval = -bigint
globalMaxval = -bigint

call ice_distributionGet(dist, &
numLocalBlocks = numBlocks, &
Expand All @@ -1479,7 +1488,7 @@ function global_maxval_int (array, dist, lMask) &
jb = this_block%jlo
je = this_block%jhi

blockMaxval = -HUGE(0_int_kind)
blockMaxval = -bigint

if (present(lMask)) then
do j=jb,je
Expand Down Expand Up @@ -1792,8 +1801,8 @@ function global_minval_dbl (array, dist, lMask) &

!-----------------------------------------------------------------------

localMinval = HUGE(0.0_dbl_kind)
globalMinval = HUGE(0.0_dbl_kind)
localMinval = bigdbl
globalMinval = bigdbl

call ice_distributionGet(dist, &
numLocalBlocks = numBlocks, &
Expand All @@ -1810,7 +1819,7 @@ function global_minval_dbl (array, dist, lMask) &
jb = this_block%jlo
je = this_block%jhi

blockMinval = HUGE(0.0_dbl_kind)
blockMinval = bigdbl

if (present(lMask)) then
do j=jb,je
Expand Down Expand Up @@ -1899,8 +1908,8 @@ function global_minval_real (array, dist, lMask) &

!-----------------------------------------------------------------------

localMinval = HUGE(0.0_real_kind)
globalMinval = HUGE(0.0_real_kind)
localMinval = bigreal
globalMinval = bigreal

call ice_distributionGet(dist, &
numLocalBlocks = numBlocks, &
Expand All @@ -1917,7 +1926,7 @@ function global_minval_real (array, dist, lMask) &
jb = this_block%jlo
je = this_block%jhi

blockMinval = HUGE(0.0_real_kind)
blockMinval = bigreal

if (present(lMask)) then
do j=jb,je
Expand Down Expand Up @@ -2006,8 +2015,8 @@ function global_minval_int (array, dist, lMask) &

!-----------------------------------------------------------------------

localMinval = HUGE(0_int_kind)
globalMinval = HUGE(0_int_kind)
localMinval = bigint
globalMinval = bigint

call ice_distributionGet(dist, &
numLocalBlocks = numBlocks, &
Expand All @@ -2024,7 +2033,7 @@ function global_minval_int (array, dist, lMask) &
jb = this_block%jlo
je = this_block%jhi

blockMinval = HUGE(0_int_kind)
blockMinval = bigint

if (present(lMask)) then
do j=jb,je
Expand Down
3 changes: 2 additions & 1 deletion configuration/scripts/machines/Macros.conda_macos
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ FFLAGS := -fconvert=big-endian -fbacktrace -ffree-line-length-none

# Additional flags for the Fortran compiler when compiling in debug mode
ifeq ($(ICE_BLDDEBUG), true)
FFLAGS += -O0 -g -fcheck=bounds -finit-real=nan -fimplicit-none -ffpe-trap=invalid,zero,overflow
# FFLAGS += -O0 -g -fcheck=bounds -finit-real=nan -fimplicit-none -ffpe-trap=invalid,zero,overflow
FFLAGS += -O0 -g -fcheck=bounds -finit-real=nan -fimplicit-none -ffpe-trap=zero,overflow
else
FFLAGS += -O2
endif
Expand Down
6 changes: 3 additions & 3 deletions configuration/scripts/tests/gridsys_suite.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ restart gx3 4x2 debug,diag1
restart2 gx1 16x2 debug,diag1
restart tx1 40x2 diag1
smoke gbox12 1x1x12x12x1 boxchan
smoke gbox80 4x2 boxchan1e
smoke gbox80 4x2 boxchan1e,debug
smoke gbox80 8x1 boxchan1n
smoke gbox80 1x1 box2001
smoke gbox80 2x2 boxwallblock
Expand All @@ -35,7 +35,7 @@ restart gx3 4x2 debug,diag1,gridcd
restart2 gx1 16x2 debug,diag1,gridcd
restart tx1 40x2 diag1,gridcd
smoke gbox12 1x1x12x12x1 boxchan,gridcd
smoke gbox80 4x2 boxchan1e,gridcd
smoke gbox80 4x2 boxchan1e,debug,gridcd
smoke gbox80 8x1 boxchan1n,gridcd
smoke gbox80 1x1 box2001,gridcd
smoke gbox80 2x2 boxwallblock,gridcd
Expand All @@ -58,7 +58,7 @@ restart gx3 4x2 debug,diag1,gridc
restart2 gx1 16x2 debug,diag1,gridc
restart tx1 40x2 diag1,gridc
smoke gbox12 1x1x12x12x1 boxchan,gridc
smoke gbox80 4x2 boxchan1e,gridc
smoke gbox80 4x2 boxchan1e,debug,gridc
smoke gbox80 8x1 boxchan1n,gridc
smoke gbox80 1x1 box2001,gridc
smoke gbox80 2x2 boxwallblock,gridc
Expand Down

0 comments on commit 45e033c

Please sign in to comment.