43 USE modi_open_namelist
44 USE modi_close_namelist
46 USE modi_ch_open_inputb
63 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
64 CHARACTER(LEN=28),
INTENT(IN) :: HCHEM_SURF_FILE
65 INTEGER,
INTENT(IN) :: KLUOUT
66 CHARACTER(LEN=*),
DIMENSION(:),
INTENT(IN) :: HSV
70 CHARACTER(LEN=40) :: YFORMAT
72 CHARACTER(LEN=40) :: YOUTFORMAT =
'(A32,2E15.5)' 76 CHARACTER(LEN=40),
DIMENSION(:),
ALLOCATABLE :: YMASSMOLNAME
77 REAL ,
DIMENSION(:),
ALLOCATABLE :: ZMASSMOLVAL
81 CHARACTER(LEN=40),
DIMENSION(:),
ALLOCATABLE :: YREACTNAME
82 REAL ,
DIMENSION(:),
ALLOCATABLE :: ZREACTVAL
86 CHARACTER(LEN=40),
DIMENSION(:),
ALLOCATABLE :: YHENRYNAME
87 character(len=50) :: yname
88 REAL ,
DIMENSION(:,:),
ALLOCATABLE :: ZHENRYVAL
93 INTEGER :: JI, JN, JNREAL
95 REAL(KIND=JPRB) :: ZHOOK_HANDLE
102 IF (
lhook)
CALL dr_hook(
'CH_INIT_DEPCONST',0,zhook_handle)
113 "CH_INIT_CONST: reading molar mass" 118 WRITE(kluout,*)
"number of molecular diffusivity: ", imass
121 READ(ich,
"(A)") yformat
122 WRITE(kluout,*)
"input format is: ", yformat
125 ALLOCATE(ymassmolname(imass))
126 ALLOCATE(zmassmolval(imass))
130 READ(ich,yformat) ymassmolname(ji), zmassmolval(ji)
131 WRITE(kluout,yformat) ymassmolname(ji), zmassmolval(ji)
135 WRITE(kluout,
'(A)')
'----------------------------------------------------' 136 WRITE(kluout,
'(A)')
'MASS_MOL' 137 WRITE(kluout,
'(A)')
'molecular mass (in g/mol) for molecular diffusion' 138 WRITE(kluout,
'(I4)')
SIZE(hsv,1)
139 WRITE(kluout,
'(A)') youtformat
142 DO jnreal = 1,
SIZE(hsv,1)
144 search_loop3 :
DO jn = 1, imass
145 IF (hsv(jnreal) .EQ. ymassmolname(jn))
THEN 161 "CH_INIT_CONST: reading reactivity factor " 166 WRITE(kluout,*)
"number of reactivity factor : ", ireact
169 READ(ich,
"(A)") yformat
170 WRITE(kluout,*)
"input format is: ", yformat
173 ALLOCATE(yreactname(ireact))
174 ALLOCATE(zreactval(ireact))
177 READ(ich,yformat) yreactname(ji), zreactval(ji)
178 WRITE(kluout,yformat) yreactname(ji), zreactval(ji)
181 WRITE(kluout,
'(A)')
'----------------------------------------------------' 182 WRITE(kluout,
'(A)')
'REA_FACT' 183 WRITE(kluout,
'(A)')
'reactivity factor' 184 WRITE(kluout,
'(I4)')
SIZE(hsv,1)
185 WRITE(kluout,
'(A)') youtformat
188 DO jnreal = 1,
SIZE(hsv,1)
190 search_loop4 :
DO jn = 1, ireact
191 IF (hsv(jnreal) .EQ. yreactname(jn))
THEN 207 "CH_INIT_CONST: reading effective Henry constant", &
208 " and its temperature correction " 213 WRITE(kluout,*)
"number of reactivity factor : ", ihenry
216 READ(ich,
"(A)") yformat
217 WRITE(kluout,*)
"input format is: ", yformat
220 ALLOCATE(yhenryname(ihenry))
221 ALLOCATE(zhenryval(ihenry,2))
224 DO jnreal = 1, ihenry
225 READ(ich,yformat) yhenryname(jnreal), zhenryval(jnreal,1),&
227 WRITE(kluout,yformat) yhenryname(jnreal), zhenryval(jnreal,1),&
231 WRITE(kluout,
'(A)')
'----------------------------------------------------' 232 WRITE(kluout,
'(A)')
'HENRY_SP' 233 WRITE(kluout,
'(A)')
'Henrys law constants factor / exponent' 234 WRITE(kluout,
'(I4)')
SIZE(hsv,1)
235 WRITE(kluout,
'(A)') youtformat
239 DO jnreal = 1,
SIZE(hsv,1)
241 search_loop5 :
DO jn = 1, ihenry
242 IF (hsv(jnreal) .EQ. yhenryname(jn))
THEN 249 WRITE(kluout,youtformat) hsv(jnreal), &
256 IF (
lhook)
CALL dr_hook(
'CH_INIT_DEPCONST',1,zhook_handle)
real, dimension(:), allocatable, save xsrealreactval
real, dimension(:,:), allocatable, save xsrealhenryval
subroutine close_namelist(HPROGRAM, KLUNAM)
subroutine ch_init_depconst(HPROGRAM, HCHEM_SURF_FILE, KLUOUT, HSV)
real, dimension(:), allocatable, save xsrealmassmolval
subroutine open_namelist(HPROGRAM, KLUNAM, HFILE)