diff --git a/.github/workflows/test-cice.yml b/.github/workflows/test-cice.yml index b04ca1714..160485d04 100644 --- a/.github/workflows/test-cice.yml +++ b/.github/workflows/test-cice.yml @@ -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 diff --git a/cicecore/cicedyn/infrastructure/comm/mpi/ice_global_reductions.F90 b/cicecore/cicedyn/infrastructure/comm/mpi/ice_global_reductions.F90 index 91daf53a8..1f7592749 100644 --- a/cicecore/cicedyn/infrastructure/comm/mpi/ice_global_reductions.F90 +++ b/cicecore/cicedyn/infrastructure/comm/mpi/ice_global_reductions.F90 @@ -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 @@ -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, & @@ -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 @@ -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, & @@ -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 @@ -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, & @@ -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 @@ -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, & @@ -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 @@ -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, & @@ -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 @@ -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, & @@ -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 diff --git a/cicecore/cicedyn/infrastructure/comm/serial/ice_global_reductions.F90 b/cicecore/cicedyn/infrastructure/comm/serial/ice_global_reductions.F90 index ed36cc6c0..e4eb95b56 100644 --- a/cicecore/cicedyn/infrastructure/comm/serial/ice_global_reductions.F90 +++ b/cicecore/cicedyn/infrastructure/comm/serial/ice_global_reductions.F90 @@ -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 @@ -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, & @@ -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 @@ -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, & @@ -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 @@ -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, & @@ -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 @@ -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, & @@ -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 @@ -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, & @@ -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 @@ -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, & @@ -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 diff --git a/configuration/scripts/machines/Macros.conda_macos b/configuration/scripts/machines/Macros.conda_macos index fad87507c..191e10d7d 100644 --- a/configuration/scripts/machines/Macros.conda_macos +++ b/configuration/scripts/machines/Macros.conda_macos @@ -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 diff --git a/configuration/scripts/tests/gridsys_suite.ts b/configuration/scripts/tests/gridsys_suite.ts index c10465f4b..e2731dd39 100644 --- a/configuration/scripts/tests/gridsys_suite.ts +++ b/configuration/scripts/tests/gridsys_suite.ts @@ -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 @@ -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 @@ -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