Module CONFIG ! Implicit None ! Character(len = 256) :: fconfig = "config.in" ! Character(len = 256) :: finp_fmt = 'X' ! VALD, KALD Logical :: short_fmt = .TRUE. ! NOT YET IMPLEMENTED FOR LONG FORMAT ! Character(len = 256) :: fout_fmt = 'X' ! NOT YET IMPLEMENTED FOR TURBO,... Character(len = 256) :: fout_name = 'X' Character(len = 256) :: fout_info = 'X' Character(len = 256) :: fnul_info = 'X' Logical :: one_elt_only = .FALSE. Character(len = 2) :: one_elt = 'XX' ! Chemical symbol of the element selected Integer :: Ion_min = 0 ! 1 for neutral, 2 for first ionized (MOOG accepts only Integer :: Ion_max = 0 ! 3 stages of ionization: neutral, first and second ionization) ! Real :: Ei_max_eV = 0. ! Low energy of the transition (50 eV max accepted by MOOG) Real :: lbd_min = 0. ! Lower bound in Angstroem Real :: lbd_max = 0. ! Upper bound in Angstroem Logical :: one_line_only = .FALSE.! Possibility to select a range around a central wavelenght Real :: lbd = 0. ! Central wavelength in Angstroem Real :: Dlbd = 0. ! Wavelength range around lbd Real :: loggf_min = 0. Real :: loggf_max = 0. Logical :: rm_grad_0 = .FALSE. ! Remove line for which gamma_rad = 0 Logical :: rm_gsta_0 = .FALSE. ! Remove line for which gamma_sta = 0 Logical :: rm_gvdw_0 = .FALSE. ! Remove line for which gamma_vdw = 0 ! Logical :: Enhancement_f = .TRUE. ! To multiply for Unsold formula for Van der Waals broadening Real :: F_H_MOOG = 0. ! enhancement factor ! Real :: delta_lbd = 0. ! Angstrœm Real :: F_H_MULTI = 0. Logical :: rm_one_elt = .FALSE. Character(len = 2) :: elt_rm = 'XX' Integer :: ion_min_rm = 0 Integer :: ion_max_rm = 0 ! Logical, parameter :: UVES = .FALSE. ! Integer :: ios Logical :: boo ! Namelist /INP_NML/ finp_fmt, short_fmt Namelist /OUT_NML/ fout_fmt, fout_name, fout_info, fnul_info Namelist /ELT_NML/ one_elt_only, one_elt, Ion_min, Ion_max Namelist /LIN_NML/ Ei_max_eV,lbd_min,lbd_max,one_line_only,lbd,Dlbd,loggf_min,loggf_max,rm_grad_0,rm_gsta_0,rm_gvdw_0 Namelist /MOOG_NML/ Enhancement_f, F_H_MOOG Namelist /MULTI_NML/ delta_lbd, F_H_MULTI,rm_one_elt,elt_rm,ion_min_rm, ion_max_rm ! CONTAINS ! !-------------------------------------------------------------------- ! Subroutine INQU_CONFIG() Do Inquire(file = fconfig, exist = boo) If(boo) EXIT Write(*, '(A)') "The configuration file does not exist in the current directory." Write(*, '(A)', advance = 'no') "Maybe the name changed? Name of the configuration file: " Read(*, '(A)') fconfig End Do End Subroutine INQU_CONFIG ! !-------------------------------------------------------------------- ! Subroutine READ_CONFIG() Open(10, file = fconfig, action = 'read', status = 'old', iostat = ios) IF(ios/=0) STOP "PB IN CONFIG MODULE FOR OPENING THE CONFIGURATION FILE fconfig" Read(10, nml = INP_NML, iostat = ios) IF(ios/=0) STOP "PB IN CONFIG MODULE FOR READING NAMELIST INP_NML" Read(10, nml = OUT_NML, iostat = ios) IF(ios/=0) STOP "PB IN CONFIG MODULE FOR READING NAMELIST OUT_NML" Read(10, nml = ELT_NML, iostat = ios) IF(ios/=0) STOP "PB IN CONFIG MODULEFOR READING NAMELIST ELT_NML" Read(10, nml = LIN_NML, iostat = ios) IF(ios/=0) STOP "PB IN CONFIG MODULEFOR READING NAMELIST LIN_NML" Read(10, nml = MOOG_NML, iostat = ios) IF(ios/=0) STOP "PB IN CONFIG MODULE FOR READING NAMELIST MOOG_NML" Read(10, nml = MULTI_NML, iostat = ios) IF(ios/=0) STOP "PB IN CONFIG MODULE FOR READING NAMELIST MULTI_NML" Close(10) End Subroutine READ_CONFIG ! End Module CONFIG