MODULE diagnostics_par ! Module for diagnostic parameters USE prec_const IMPLICIT NONE PRIVATE LOGICAL, PUBLIC, PROTECTED :: write_theta=.TRUE. LOGICAL, PUBLIC, PROTECTED :: write_temp=.TRUE. LOGICAL, PUBLIC, PROTECTED :: write_vpar=.TRUE. LOGICAL, PUBLIC, PROTECTED :: write_moments=.TRUE. LOGICAL, PUBLIC, PROTECTED :: write_phi=.TRUE. LOGICAL, PUBLIC, PROTECTED :: write_doubleprecision=.FALSE. INTEGER, PUBLIC, PROTECTED :: nsave_0d , nsave_1d , nsave_2d , nsave_3d ! REAL(dp), PUBLIC :: last_timeout_0d, last_timeout_1d, last_timeout_2d, last_timeout_3d ! HDF5 file CHARACTER(len=64), PUBLIC :: resfile0 = "results" ! Head of main result file name CHARACTER(len=64), PUBLIC :: resfile ! Main result file INTEGER, PUBLIC :: fidres ! FID for resfile ! CHARACTER(len=64), PUBLIC :: rstfile0 = "restart" ! Head of restart file name ! CHARACTER(len=64), PUBLIC :: rstfile ! Full restart file ! INTEGER, PUBLIC :: fidrst ! FID for restart file PUBLIC :: output_par_readinputs, output_par_outputinputs CONTAINS SUBROUTINE output_par_readinputs ! Read the input parameters USE basic, ONLY : lu_in USE prec_const IMPLICIT NONE NAMELIST /OUTPUT_PAR/ nsave_0d , nsave_1d , nsave_2d , nsave_3d NAMELIST /OUTPUT_PAR/ write_theta, write_temp NAMELIST /OUTPUT_PAR/ write_vpar, write_moments, write_phi, write_doubleprecision NAMELIST /OUTPUT_PAR/ resfile0!, rstfile0 READ(lu_in,output_par) WRITE(*,output_par) END SUBROUTINE output_par_readinputs SUBROUTINE output_par_outputinputs(fidres, str) ! ! Write the input parameters to the results_xx.h5 file ! USE prec_const USE futils, ONLY: attach IMPLICIT NONE INTEGER, INTENT(in) :: fidres CHARACTER(len=256), INTENT(in) :: str CALL attach(fidres, TRIM(str), "write_theta", write_theta) CALL attach(fidres, TRIM(str), "write_temp", write_temp) CALL attach(fidres, TRIM(str), "write_vpar", write_vpar) CALL attach(fidres, TRIM(str), "write_moments", write_moments) CALL attach(fidres, TRIM(str), "write_phi", write_phi) CALL attach(fidres, TRIM(str), "write_doubleprecision", write_doubleprecision) CALL attach(fidres, TRIM(str), "nsave_0d", nsave_0d) CALL attach(fidres, TRIM(str), "nsave_1d", nsave_1d) CALL attach(fidres, TRIM(str), "nsave_2d", nsave_2d) CALL attach(fidres, TRIM(str), "nsave_3d", nsave_3d) CALL attach(fidres, TRIM(str), "resfile0", resfile0) END SUBROUTINE output_par_outputinputs END MODULE diagnostics_par