<p><b>duda</b> 2009-12-23 13:35:10 -0700 (Wed, 23 Dec 2009)</p><p>Allow the names of input, output, and restart files to be specified<br>
at run-time through namelist parameters:<br>
<br>
&io<br>
config_input_name = 'grid.nc'<br>
config_output_name = 'output.nc'<br>
config_restart_name = 'restart.nc'<br>
/<br>
<br>
<br>
M swmodel/src/module_io_input.F<br>
M swmodel/src/module_io_output.F<br>
M swmodel/src/Makefile<br>
M swmodel/Registry/Registry<br>
M swmodel/namelist.input<br>
</p><hr noshade><pre><font color="gray">Modified: trunk/swmodel/Registry/Registry
===================================================================
--- trunk/swmodel/Registry/Registry        2009-12-23 20:13:48 UTC (rev 98)
+++ trunk/swmodel/Registry/Registry        2009-12-23 20:35:10 UTC (rev 99)
@@ -7,6 +7,9 @@
namelist integer sw_model config_ntimesteps 7500
namelist integer sw_model config_output_interval 500
namelist real sw_model config_visc 0.0
+namelist character io config_input_name grid.nc
+namelist character io config_output_name output.nc
+namelist character io config_restart_name restart.nc
namelist integer restart config_restart_interval 0
namelist logical restart config_do_restart false
namelist real restart config_restart_time 172800.0
Modified: trunk/swmodel/namelist.input
===================================================================
--- trunk/swmodel/namelist.input        2009-12-23 20:13:48 UTC (rev 98)
+++ trunk/swmodel/namelist.input        2009-12-23 20:35:10 UTC (rev 99)
@@ -7,6 +7,12 @@
config_visc = 0.0
/
+&io
+ config_input_name = 'grid.nc'
+ config_output_name = 'output.nc'
+ config_restart_name = 'restart.nc'
+/
+
&restart
config_restart_interval = 3000
config_do_restart = .false.
Modified: trunk/swmodel/src/Makefile
===================================================================
--- trunk/swmodel/src/Makefile        2009-12-23 20:13:48 UTC (rev 98)
+++ trunk/swmodel/src/Makefile        2009-12-23 20:35:10 UTC (rev 99)
@@ -36,7 +36,7 @@
module_io_input.o: module_grid_types.o module_dmpar.o module_block_decomp.o module_sort.o module_configure.o
-module_io_output.o: module_grid_types.o module_dmpar.o module_sort.o
+module_io_output.o: module_grid_types.o module_dmpar.o module_sort.o module_configure.o
module_sw_solver.o: module_configure.o module_grid_types.o module_io_output.o module_time_integration.o module_dmpar.o module_timer.o
Modified: trunk/swmodel/src/module_io_input.F
===================================================================
--- trunk/swmodel/src/module_io_input.F        2009-12-23 20:13:48 UTC (rev 98)
+++ trunk/swmodel/src/module_io_input.F        2009-12-23 20:35:10 UTC (rev 99)
@@ -91,9 +91,9 @@
integer :: idxTdiff
if (config_do_restart) then
- input_obj % filename = 'restart.nc'
+ input_obj % filename = trim(config_restart_name)
else
- input_obj % filename = 'grid.nc'
+ input_obj % filename = trim(config_input_name)
end if
call io_input_init(input_obj, domain % dminfo)
@@ -501,7 +501,7 @@
!
! If doing a restart, we need to decide which time slice to read from the
- ! restart.nc file
+ ! restart file
!
if (input_obj % rdLocalTime <= 0) then
write(0,*) 'Error: Couldn''t find any times in restart file.'
Modified: trunk/swmodel/src/module_io_output.F
===================================================================
--- trunk/swmodel/src/module_io_output.F        2009-12-23 20:13:48 UTC (rev 98)
+++ trunk/swmodel/src/module_io_output.F        2009-12-23 20:35:10 UTC (rev 99)
@@ -3,6 +3,7 @@
use grid_types
use dmpar
use sort
+ use configure
integer, parameter :: OUTPUT = 1
integer, parameter :: RESTART = 2
@@ -74,10 +75,10 @@
nVertLevelsGlobal = block_ptr % mesh % nVertLevels
if (trim(stream) == 'OUTPUT') then
- output_obj % filename = 'output.nc'
+ output_obj % filename = trim(config_output_name)
output_obj % stream = OUTPUT
else if (trim(stream) == 'RESTART') then
- output_obj % filename = 'restart.nc'
+ output_obj % filename = trim(config_restart_name)
output_obj % stream = RESTART
end if
</font>
</pre>