51 integer(int32),
intent(in) :: i_qoi
52 integer(int32),
optional,
intent(in) :: i_par
53 logical,
optional,
intent(in) :: auto
54 real(real64),
optional,
intent(in) :: guess
58 namelist /restart/ res
66 if (.not.(
present(i_par))) error stop
'Error: Missing "i_par" input to function write_res_nml().'
69 if (.not.(
present(auto))) error stop
'Error: Missing "auto" input to function write_res_nml().'
73 if (.not.(
present(guess))) error stop
'Error: Missing "guess" input to function write_res_nml().'
83 write(nml=restart, iostat=
rc, unit=
fu)
85 error stop
'Error: Invalid RESTART namelist defined in function write_res_nml().'
116 namelist /restart/ res
122 error stop
'Error: This restart file is not present in the current directory.'
129 read(nml=restart, iostat=
rc, unit=
fu)
131 error stop
'Error: Invalid RESTART namelist in "res_nml.txt".'
153 integer,
intent(in) :: ierr
154 if (ierr /= nf90_noerr)
then
155 print*, trim(nf90_strerror(ierr))
179 character(len=*),
intent(in) :: filename
180 real(real64),
dimension(:),
intent(out) :: energies, variances, accept_rates
181 integer :: ierr, file_id, var_id
184 inquire(file=filename, iostat=
rc)
186 print*,
'Searched for file ', filename,
' .'
187 error stop
'Error: This restart file is not present in the current directory.'
191 ierr = nf90_open(filename, nf90_nowrite, file_id)
195 ierr = nf90_inq_varid(file_id,
"total_energies", var_id)
199 ierr = nf90_get_var(file_id, var_id, energies)
203 ierr = nf90_inq_varid(file_id,
"Uncertainties", var_id)
207 ierr = nf90_get_var(file_id, var_id, variances)
211 ierr = nf90_get_att(file_id, nf90_global,
"accept_rate", accept_rates)
215 ierr = nf90_close(file_id)
241 character(len=*),
intent(in) :: filename
242 real(real64),
dimension(:),
intent(out) :: energies, variances, accept_rates, c_array
243 integer :: ierr, file_id, var_id
246 inquire(file=filename, iostat=
rc)
248 print*,
'Searched for file ', filename,
' .'
249 error stop
'Error: This restart file is not present in the current directory.'
253 ierr = nf90_open(filename, nf90_nowrite, file_id)
257 ierr = nf90_inq_varid(file_id,
"total_energies", var_id)
261 ierr = nf90_get_var(file_id, var_id, energies)
265 ierr = nf90_inq_varid(file_id,
"Uncertainties", var_id)
269 ierr = nf90_get_var(file_id, var_id, variances)
273 ierr = nf90_inq_varid(file_id,
"Parameter_array", var_id)
277 ierr = nf90_get_var(file_id, var_id, c_array)
281 ierr = nf90_get_att(file_id, nf90_global,
"accept_rate", accept_rates)
285 ierr = nf90_close(file_id)
312 character(len=*),
intent(in) :: filename
313 real(real64),
dimension(:),
intent(out) :: energies, variances, accept_rates, a_array, b_array
314 integer :: ierr, file_id, var_id
317 inquire(file=filename, iostat=
rc)
319 print*,
'Searched for file ', filename,
' .'
320 error stop
'Error: This restart file is not present in the current directory.'
324 ierr = nf90_open(filename, nf90_nowrite, file_id)
328 ierr = nf90_inq_varid(file_id,
"total_energies", var_id)
332 ierr = nf90_get_var(file_id, var_id, energies)
336 ierr = nf90_inq_varid(file_id,
"Uncertainties", var_id)
340 ierr = nf90_get_var(file_id, var_id, variances)
344 ierr = nf90_inq_varid(file_id,
"Parameter_a_array", var_id)
348 ierr = nf90_get_var(file_id, var_id, a_array)
352 ierr = nf90_inq_varid(file_id,
"Parameter_beta_array", var_id)
356 ierr = nf90_get_var(file_id, var_id, b_array)
360 ierr = nf90_get_att(file_id, nf90_global,
"accept_rate", accept_rates)
364 ierr = nf90_close(file_id)
370 end module restart_fns
Contains routines to read and write restart files.
subroutine write_res_nml(i_qoi, i_par, auto, guess)
Writes the restart file res_nml.txt, using the current states of simulation variables.
subroutine read_energies_h2plus(filename, energies, variances, accept_rates, c_array)
Reads restart files with energies, variances and acceptence arrays. Also reads one extra array of opt...
subroutine error_check(ierr)
Checks error status at each point of the NetCDF read.
subroutine read_res_nml(res)
Reads the RESTART namelist in res_nml.txt. Assigns the input data to the corresponding variables in t...
subroutine read_energies(filename, energies, variances, accept_rates)
Reads restart files with energies, variances and acceptence arrays.
subroutine read_energies_h2(filename, energies, variances, accept_rates, a_array, b_array)
Reads restart files with energies, variances and acceptence arrays. Also reads two extra arrays of op...
integer rc
To capture error states during file i/o.
integer fu
To store LUN of files during i/o.
Contains derived types, and global variables to store input values of simulation parameters.
character(len= *), parameter resfile_nml
Name of restart file storing RESTART namelist.
character(len=10) p_system
System of interest: QHO, H2plus, H2.
Derived Type to store restart data.