make results self-contained for reproducibility
ToDo: same functionality for load and geom
This commit is contained in:
parent
f20302e0ee
commit
3b06498c2f
|
@ -8,7 +8,8 @@ module config
|
||||||
use IO
|
use IO
|
||||||
use YAML_parse
|
use YAML_parse
|
||||||
use YAML_types
|
use YAML_types
|
||||||
|
use results
|
||||||
|
use parallelization
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
private
|
private
|
||||||
|
@ -31,6 +32,7 @@ subroutine config_init
|
||||||
|
|
||||||
print'(/,a)', ' <<<+- config init -+>>>'; flush(IO_STDOUT)
|
print'(/,a)', ' <<<+- config init -+>>>'; flush(IO_STDOUT)
|
||||||
|
|
||||||
|
|
||||||
call parse_material
|
call parse_material
|
||||||
call parse_numerics
|
call parse_numerics
|
||||||
call parse_debug
|
call parse_debug
|
||||||
|
@ -41,14 +43,21 @@ end subroutine config_init
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief Read material.yaml or <jobname>.yaml.
|
!> @brief Read material.yaml or <jobname>.yaml.
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine parse_material
|
subroutine parse_material()
|
||||||
|
|
||||||
logical :: fileExists
|
logical :: fileExists
|
||||||
|
character(len=:), allocatable :: fileContent
|
||||||
|
|
||||||
|
|
||||||
inquire(file='material.yaml',exist=fileExists)
|
inquire(file='material.yaml',exist=fileExists)
|
||||||
if(.not. fileExists) call IO_error(100,ext_msg='material.yaml')
|
if(.not. fileExists) call IO_error(100,ext_msg='material.yaml')
|
||||||
print*, 'reading material.yaml'; flush(IO_STDOUT)
|
print*, 'reading material.yaml'; flush(IO_STDOUT)
|
||||||
|
fileContent = IO_read('material.yaml')
|
||||||
|
if (worldrank == 0) then
|
||||||
|
call results_openJobFile(parallel=.false.)
|
||||||
|
call results_writeDataset_str(fileContent,'setup','material.yaml','DAMASK main configuration')
|
||||||
|
call results_closeJobFile
|
||||||
|
endif
|
||||||
config_material => YAML_parse_file('material.yaml')
|
config_material => YAML_parse_file('material.yaml')
|
||||||
|
|
||||||
end subroutine parse_material
|
end subroutine parse_material
|
||||||
|
@ -57,15 +66,22 @@ end subroutine parse_material
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief Read numerics.yaml.
|
!> @brief Read numerics.yaml.
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine parse_numerics
|
subroutine parse_numerics()
|
||||||
|
|
||||||
logical :: fexist
|
logical :: fileExists
|
||||||
|
character(len=:), allocatable :: fileContent
|
||||||
|
|
||||||
|
|
||||||
config_numerics => emptyDict
|
config_numerics => emptyDict
|
||||||
inquire(file='numerics.yaml', exist=fexist)
|
inquire(file='numerics.yaml', exist=fileExists)
|
||||||
if (fexist) then
|
if (fileExists) then
|
||||||
print*, 'reading numerics.yaml'; flush(IO_STDOUT)
|
print*, 'reading numerics.yaml'; flush(IO_STDOUT)
|
||||||
|
fileContent = IO_read('numerics.yaml')
|
||||||
|
if (worldrank == 0) then
|
||||||
|
call results_openJobFile(parallel=.false.)
|
||||||
|
call results_writeDataset_str(fileContent,'setup','numerics.yaml','numerics configuration (optional)')
|
||||||
|
call results_closeJobFile
|
||||||
|
endif
|
||||||
config_numerics => YAML_parse_file('numerics.yaml')
|
config_numerics => YAML_parse_file('numerics.yaml')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -75,17 +91,24 @@ end subroutine parse_numerics
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief Read debug.yaml.
|
!> @brief Read debug.yaml.
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine parse_debug
|
subroutine parse_debug()
|
||||||
|
|
||||||
logical :: fexist
|
logical :: fileExists
|
||||||
|
character(len=:), allocatable :: fileContent
|
||||||
|
|
||||||
|
|
||||||
config_debug => emptyDict
|
config_debug => emptyDict
|
||||||
inquire(file='debug.yaml', exist=fexist)
|
inquire(file='debug.yaml', exist=fileExists)
|
||||||
fileExists: if (fexist) then
|
if (fileExists) then
|
||||||
print*, 'reading debug.yaml'; flush(IO_STDOUT)
|
print*, 'reading debug.yaml'; flush(IO_STDOUT)
|
||||||
|
fileContent = IO_read('debug.yaml')
|
||||||
|
if (worldrank == 0) then
|
||||||
|
call results_openJobFile(parallel=.false.)
|
||||||
|
call results_writeDataset_str(fileContent,'setup','debug.yaml','debug configuration (optional)')
|
||||||
|
call results_closeJobFile
|
||||||
|
endif
|
||||||
config_debug => YAML_parse_file('debug.yaml')
|
config_debug => YAML_parse_file('debug.yaml')
|
||||||
endif fileExists
|
endif
|
||||||
|
|
||||||
end subroutine parse_debug
|
end subroutine parse_debug
|
||||||
|
|
||||||
|
|
|
@ -82,6 +82,8 @@ subroutine results_init(restart)
|
||||||
call results_addAttribute('call',trim(commandLine))
|
call results_addAttribute('call',trim(commandLine))
|
||||||
call results_closeGroup(results_addGroup('cell_to'))
|
call results_closeGroup(results_addGroup('cell_to'))
|
||||||
call results_addAttribute('description','mappings to place data in space','cell_to')
|
call results_addAttribute('description','mappings to place data in space','cell_to')
|
||||||
|
call results_closeGroup(results_addGroup('setup'))
|
||||||
|
call results_addAttribute('description','input data used to run the simulation','setup')
|
||||||
call results_closeJobFile
|
call results_closeJobFile
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue