Skip to content

Commit 817f3f4

Browse files
authored
Merge pull request #9 from CMCC-Foundation/numdom_fix
Revision of numdom handling.
2 parents 054bf60 + 69fb687 commit 817f3f4

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

src/py_nemo_rebuild/nemo_rebuild.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949

5050
def nemo_rebuild(in_file=None,
5151
out_file=None,
52-
numdom=None,
52+
numdom=0,
5353
variables=None,
5454
nohalo=False,
5555
fill=0,
@@ -64,7 +64,8 @@ def nemo_rebuild(in_file=None,
6464
- Full name of a domain file, e.g. filebase_0000.nc
6565
- Base name of a domain file, e.g. filebase
6666
out_file : (string) rebuilt output file name. Default: filebase.nc
67-
numdom : (integer) number of domains. Default: DOMAIN_number_total global attribute.
67+
numdom : (integer) number of domains. Default: 0 => Use DOMAIN_number_total global attribute.
68+
The command line value takes precedence over the global attribute!
6869
variables: (string) rebuild only selected variables (comma separated list),
6970
e.g. variables='thetao,so,zos'
7071
nohalo : (bool) Remove global domain halo (rebuilt restart file won't work) (default False)
@@ -102,7 +103,7 @@ def nemo_rebuild(in_file=None,
102103
raise ValueError('Missing input file.')
103104
#
104105
# Check domains number
105-
if (numdom != None):
106+
if (numdom != 0):
106107
if (numdom < 0):
107108
raise ValueError('NUMDOM < 0 !')
108109
elif (numdom == 1):
@@ -168,13 +169,13 @@ def nemo_rebuild(in_file=None,
168169
incid = nc.Dataset(in_file0, 'r')
169170
#
170171
# Get number of domains from global attributes
171-
if (numdom != incid.DOMAIN_number_total):
172-
if (numdom != None):
173-
print('WARNING: NUMDOM overwritten with DOMAIN_number_total global attribute!', flush=True)
172+
if (numdom == 0):
174173
numdom = incid.DOMAIN_number_total
175-
#
176-
if (numdom == None):
177-
raise ValueError('NUMDOM=None.')
174+
print('WARNING: NUMDOM=0, overwritten with DOMAIN_number_total global attribute!', flush=True)
175+
print(' DOMAIN_number_total = {:d}'.format(numdom), flush=True)
176+
elif (numdom != incid.DOMAIN_number_total):
177+
print('WARNING: DOMAIN_number_total global attribute differs from NUMDOM!', flush=True)
178+
print(' Command line value NUMDOM (={:d}) takes precedence!'.format(numdom), flush=True)
178179
#
179180
if parallel and (numdom < size):
180181
raise ValueError('NUMDOM {:d} < number of MPI tasks {:d}!'.format(numdom, size))
@@ -499,10 +500,10 @@ def rebuild():
499500
'--numdom',
500501
action='store',
501502
dest='numdom',
502-
default=None,
503+
default=0,
503504
type=int,
504505
required=False,
505-
help='Number of domains (input files)')
506+
help='Number of domains (i.e. input files, takes precedence over global attributes)')
506507
parser.add_argument(
507508
'-f',
508509
'--fill',

0 commit comments

Comments
 (0)