-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Deprecate nprocs, and better estimate for max_blocks if not set in ic…
…e_in
- Loading branch information
1 parent
d6813d6
commit 7743bcf
Showing
3 changed files
with
90 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
diff --git a/cicecore/shared/ice_distribution.F90 b/cicecore/shared/ice_distribution.F90 | ||
old mode 100644 | ||
new mode 100755 | ||
index 0f3f6c1..6e06069 | ||
--- a/cicecore/shared/ice_distribution.F90 | ||
+++ b/cicecore/shared/ice_distribution.F90 | ||
@@ -41,7 +41,8 @@ module ice_distribution | ||
ice_distributionGet, & | ||
ice_distributionGetBlockLoc, & | ||
ice_distributionGetBlockID, & | ||
- create_local_block_ids | ||
+ create_local_block_ids, & | ||
+ proc_decomposition | ||
|
||
character (char_len), public :: & | ||
processor_shape ! 'square-pop' (approx) POP default config |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
diff --git a/cicecore/cicedyn/infrastructure/ice_domain.F90 b/cicecore/cicedyn/infrastructure/ice_domain.F90 | ||
index 8b680f2..cf13fcc 100644 | ||
--- a/cicecore/cicedyn/infrastructure/ice_domain.F90 | ||
+++ b/cicecore/cicedyn/infrastructure/ice_domain.F90 | ||
@@ -88,7 +88,7 @@ module ice_domain | ||
distribution_wght_file ! file for distribution_wght=file | ||
|
||
integer (int_kind) :: & | ||
- nprocs ! num of processors | ||
+ nprocs, nprocs_x, nprocs_y ! num of processors | ||
|
||
!*********************************************************************** | ||
|
||
@@ -101,7 +101,7 @@ subroutine init_domain_blocks | ||
! This routine reads in domain information and calls the routine | ||
! to set up the block decomposition. | ||
|
||
- use ice_distribution, only: processor_shape | ||
+ use ice_distribution, only: processor_shape, proc_decomposition | ||
use ice_domain_size, only: ncat, nilyr, nslyr, max_blocks, & | ||
nx_global, ny_global, block_size_x, block_size_y | ||
use ice_fileunits, only: goto_nml | ||
@@ -204,6 +204,14 @@ subroutine init_domain_blocks | ||
|
||
endif | ||
|
||
+ if (nprocs .ne. -1) then | ||
+ if (my_task == master_task) then | ||
+ write(nu_diag,*) subname//' WARNING: nprocs is deprecated, please remove from namelist' | ||
+ endif | ||
+ endif | ||
+ | ||
+ nprocs = get_num_procs() | ||
+ | ||
call broadcast_scalar(nprocs, master_task) | ||
call broadcast_scalar(processor_shape, master_task) | ||
call broadcast_scalar(distribution_type, master_task) | ||
@@ -216,10 +224,14 @@ subroutine init_domain_blocks | ||
call broadcast_scalar(maskhalo_bound, master_task) | ||
call broadcast_scalar(add_mpi_barriers, master_task) | ||
call broadcast_scalar(debug_blocks, master_task) | ||
+ | ||
+ ! update nprocs_x and nprocs_y | ||
+ call proc_decomposition(nprocs, nprocs_x, nprocs_y) | ||
+ ! set max_blocks | ||
if (my_task == master_task) then | ||
if (max_blocks < 1) then | ||
- max_blocks=( ((nx_global-1)/block_size_x + 1) * & | ||
- ((ny_global-1)/block_size_y + 1) - 1) / nprocs + 1 | ||
+ max_blocks=((nx_global-1)/block_size_x/nprocs_x+1) * & | ||
+ ((ny_global-1)/block_size_y/nprocs_y+1) | ||
max_blocks=max(1,max_blocks) | ||
write(nu_diag,'(/,a52,i6,/)') & | ||
'(ice_domain): max_block < 1: max_block estimated to ',max_blocks | ||
@@ -242,16 +254,6 @@ subroutine init_domain_blocks | ||
!*** domain size zero or negative | ||
!*** | ||
call abort_ice(subname//' ERROR: Invalid domain: size < 1', file=__FILE__, line=__LINE__) ! no domain | ||
- else if (nprocs /= get_num_procs()) then | ||
- !*** | ||
- !*** input nprocs does not match system (eg MPI) request | ||
- !*** | ||
-#if (defined CESMCOUPLED) | ||
- nprocs = get_num_procs() | ||
-#else | ||
- write(nu_diag,*) subname,' ERROR: nprocs, get_num_procs = ',nprocs,get_num_procs() | ||
- call abort_ice(subname//' ERROR: Input nprocs not same as system request', file=__FILE__, line=__LINE__) | ||
-#endif | ||
else if (nghost < 1) then | ||
!*** | ||
!*** must have at least 1 layer of ghost cells |