off_test_save_load_file_parameters.f90 Source File

OFF test: save (and re-load for checking) file of simulation parameters.

This File Depends On

sourcefile~~off_test_save_load_file_parameters.f90~~EfferentGraph sourcefile~off_test_save_load_file_parameters.f90 off_test_save_load_file_parameters.f90 sourcefile~off_objects.f90 off_objects.f90 sourcefile~off_objects.f90->sourcefile~off_test_save_load_file_parameters.f90 sourcefile~off_file_object.f90 off_file_object.f90 sourcefile~off_file_object.f90->sourcefile~off_objects.f90 sourcefile~off_files_collection_object.f90 off_files_collection_object.f90 sourcefile~off_file_object.f90->sourcefile~off_files_collection_object.f90 sourcefile~off_file_grid_object.f90 off_file_grid_object.f90 sourcefile~off_file_object.f90->sourcefile~off_file_grid_object.f90 sourcefile~off_simulation_object.f90 off_simulation_object.f90 sourcefile~off_simulation_object.f90->sourcefile~off_objects.f90 sourcefile~off_solver_object.f90 off_solver_object.f90 sourcefile~off_solver_object.f90->sourcefile~off_objects.f90 sourcefile~off_solver_object.f90->sourcefile~off_simulation_object.f90 sourcefile~off_block_signature_object.f90 off_block_signature_object.f90 sourcefile~off_block_signature_object.f90->sourcefile~off_objects.f90 sourcefile~off_grid_dimensions_object.f90 off_grid_dimensions_object.f90 sourcefile~off_block_signature_object.f90->sourcefile~off_grid_dimensions_object.f90 sourcefile~off_block_object.f90 off_block_object.f90 sourcefile~off_block_signature_object.f90->sourcefile~off_block_object.f90 sourcefile~off_files_collection_object.f90->sourcefile~off_objects.f90 sourcefile~off_cell_object.f90 off_cell_object.f90 sourcefile~off_cell_object.f90->sourcefile~off_objects.f90 sourcefile~off_cell_object.f90->sourcefile~off_block_object.f90 sourcefile~off_os_object.f90 off_os_object.f90 sourcefile~off_os_object.f90->sourcefile~off_objects.f90 sourcefile~off_os_object.f90->sourcefile~off_simulation_object.f90 sourcefile~off_error_object.f90 off_error_object.f90 sourcefile~off_error_object.f90->sourcefile~off_objects.f90 sourcefile~off_error_object.f90->sourcefile~off_file_object.f90 sourcefile~off_error_object.f90->sourcefile~off_simulation_object.f90 sourcefile~off_error_object.f90->sourcefile~off_solver_object.f90 sourcefile~off_error_object.f90->sourcefile~off_os_object.f90 sourcefile~off_free_conditions_object.f90 off_free_conditions_object.f90 sourcefile~off_error_object.f90->sourcefile~off_free_conditions_object.f90 sourcefile~off_error_object.f90->sourcefile~off_block_object.f90 sourcefile~off_time_object.f90 off_time_object.f90 sourcefile~off_error_object.f90->sourcefile~off_time_object.f90 sourcefile~off_non_dimensional_numbers_object.f90 off_non_dimensional_numbers_object.f90 sourcefile~off_error_object.f90->sourcefile~off_non_dimensional_numbers_object.f90 sourcefile~off_grid_dimensions_object.f90->sourcefile~off_objects.f90 sourcefile~off_grid_dimensions_object.f90->sourcefile~off_simulation_object.f90 sourcefile~off_grid_dimensions_object.f90->sourcefile~off_file_grid_object.f90 sourcefile~off_face_object.f90 off_face_object.f90 sourcefile~off_face_object.f90->sourcefile~off_objects.f90 sourcefile~off_face_object.f90->sourcefile~off_block_object.f90 sourcefile~off_node_object.f90 off_node_object.f90 sourcefile~off_node_object.f90->sourcefile~off_objects.f90 sourcefile~off_node_object.f90->sourcefile~off_block_object.f90 sourcefile~off_free_conditions_object.f90->sourcefile~off_objects.f90 sourcefile~off_free_conditions_object.f90->sourcefile~off_simulation_object.f90 sourcefile~off_block_object.f90->sourcefile~off_objects.f90 sourcefile~off_block_object.f90->sourcefile~off_simulation_object.f90 sourcefile~off_block_object.f90->sourcefile~off_file_grid_object.f90 sourcefile~off_time_object.f90->sourcefile~off_objects.f90 sourcefile~off_time_object.f90->sourcefile~off_simulation_object.f90 sourcefile~off_file_grid_object.f90->sourcefile~off_objects.f90 sourcefile~off_file_grid_object.f90->sourcefile~off_simulation_object.f90 sourcefile~off_non_dimensional_numbers_object.f90->sourcefile~off_objects.f90 sourcefile~off_non_dimensional_numbers_object.f90->sourcefile~off_simulation_object.f90
Help


Source Code

!< OFF test: save (and re-load for checking) file of simulation parameters.

program off_test_save_load_file_parameters
!< OFF test: save (and re-load for checking) file of simulation parameters.

use off_objects, only : simulation_object
use flap, only : command_line_interface
use penf, only : I4P, R8P

implicit none
character(999)          :: file_parameters     !< Name of simulation parameters.
type(simulation_object) :: simulation          !< Simulation data.
logical                 :: are_tests_passed(1) !< Result of tests check.

are_tests_passed = .false.

simulation%adimensionals%Ma = 3._R8P

call cli_parse

call simulation%save_file_parameters(file_name=file_parameters)

call simulation%initialize ! re-initialize

call simulation%load_file_parameters(file_name=file_parameters)

are_tests_passed(1) = simulation%adimensionals%Ma == 3._R8P

print '(A)', simulation%description()

print '(A,L1)', 'Are all tests passed? ', all(are_tests_passed)

call simulation%os%rm(file_name=trim(file_parameters)) ! remove temporary file parameters

contains
  subroutine cli_parse()
  !< Build and parse test cli.
  type(command_line_interface) :: cli   !< Test command line interface.
  integer(I4P)                 :: error !< Error trapping flag.

  call cli%init(progname='off_test_save_load_file_parameters',                                   &
                authors='S. Zaghi',                                                              &
                help='Usage: ',                                                                  &
                examples=["off_test_save_load_file_parameters --parameters sim_parameters.ini"], &
                epilog=new_line('a')//"all done")

  call cli%add(switch='--parameters-file',                &
               switch_ab='-par',                          &
               help='name of simulation parameters file', &
               required=.true.,                           &
               act='store')

  call cli%parse(error=error) ; if (error/=0) stop

  call cli%get(switch='--parameters-file', val=file_parameters)
  endsubroutine cli_parse
endprogram off_test_save_load_file_parameters