Skip to content

Commit

Permalink
Optional argument to get_MOM_input to append ensemble number suffix
Browse files Browse the repository at this point in the history
  • Loading branch information
MJHarrison-GFDL committed Mar 23, 2018
1 parent 0260598 commit c711500
Showing 1 changed file with 20 additions and 7 deletions.
27 changes: 20 additions & 7 deletions src/framework/MOM_get_input.F90
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,15 @@ module MOM_get_input

!> Get the names of the I/O directories and initialization file.
!! Also calls the subroutine that opens run-time parameter files.
subroutine get_MOM_input(param_file, dirs, check_params, default_input_filename)
subroutine get_MOM_input(param_file, dirs, check_params, default_input_filename, ensemble_num)
type(param_file_type), optional, intent(out) :: param_file !< A structure to parse for run-time parameters.
type(directories), optional, intent(out) :: dirs !< Container for paths and parameter file names.
logical, optional, intent(in) :: check_params !< If present and False will stop error checking for
!! run-time parameters.
character(len=*), optional, intent(in) :: default_input_filename !< If present, is the value assumed for
!! input_filename if input_filename is not listed
!! in the namelist MOM_input_nml.
integer, intent(in), optional :: ensemble_num !< The ensemble id of the current member
! Local variables
integer, parameter :: npf = 5 ! Maximum number of parameter files
character(len=240) :: &
Expand Down Expand Up @@ -77,10 +78,17 @@ subroutine get_MOM_input(param_file, dirs, check_params, default_input_filename)

! Store parameters in container
if (present(dirs)) then
dirs%output_directory = slasher(ensembler(output_directory))
dirs%restart_output_dir = slasher(ensembler(restart_output_dir))
dirs%restart_input_dir = slasher(ensembler(restart_input_dir))
dirs%input_filename = ensembler(input_filename)
if (present(ensemble_num)) then
dirs%output_directory = slasher(ensembler(output_directory,ensemble_num))
dirs%restart_output_dir = slasher(ensembler(restart_output_dir,ensemble_num))
dirs%restart_input_dir = slasher(ensembler(restart_input_dir,ensemble_num))
dirs%input_filename = ensembler(input_filename,ensemble_num)
else
dirs%output_directory = slasher(ensembler(output_directory))
dirs%restart_output_dir = slasher(ensembler(restart_output_dir))
dirs%restart_input_dir = slasher(ensembler(restart_input_dir))
dirs%input_filename = ensembler(input_filename)
endif
endif

! Open run-time parameter file(s)
Expand All @@ -89,8 +97,13 @@ subroutine get_MOM_input(param_file, dirs, check_params, default_input_filename)
valid_param_files = 0
do io = 1, npf
if (len_trim(trim(parameter_filename(io))) > 0) then
call open_param_file(ensembler(parameter_filename(io)), param_file, &
check_params, doc_file_dir=output_dir)
if (present(ensemble_num)) then
call open_param_file(ensembler(parameter_filename(io),ensemble_num), param_file, &
check_params, doc_file_dir=output_dir)
else
call open_param_file(ensembler(parameter_filename(io)), param_file, &
check_params, doc_file_dir=output_dir)
endif
valid_param_files = valid_param_files + 1
endif
enddo
Expand Down

0 comments on commit c711500

Please sign in to comment.