4949
5050def 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