Skip to content

Commit 5d3d64c

Browse files
committed
mimicsplus parameter, part 1
1 parent 5a7a8df commit 5d3d64c

File tree

1 file changed

+47
-30
lines changed

1 file changed

+47
-30
lines changed

src/soilbiogeochem/SoilBiogeochemDecompCascadeMIMICSMod.F90

+47-30
Original file line numberDiff line numberDiff line change
@@ -178,159 +178,176 @@ subroutine readParams ( ncid )
178178
logical :: readv ! has variable been read in or not
179179
real(r8) :: tempr ! temporary to read in constant
180180
character(len=100) :: tString ! temp. var for reading
181+
character(len=20) :: param_pref ! parameter prefix
181182
!-----------------------------------------------------------------------
182183

184+
param_pref = 'mimics'
185+
if (decomp_method == mimicsplus_decomp) then
186+
param_pref = 'mimicsplus'
187+
endif
188+
183189
! Read off of netcdf file
184-
tString='mimics_initial_Cstocks_depth'
190+
tString= trim(param_pref) // '_initial_Cstocks_depth'
185191
call ncd_io(trim(tString), tempr, 'read', ncid, readvar=readv)
186192
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
187193
params_inst%mimics_initial_Cstocks_depth=tempr
188194

189195
allocate(params_inst%mimics_initial_Cstocks(ndecomp_pools_max))
190-
tString='mimics_initial_Cstocks'
196+
tString= trim(param_pref) // '_initial_Cstocks'
191197
call ncd_io(trim(tString), params_inst%mimics_initial_Cstocks(:), 'read', ncid, readvar=readv)
192198
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
193199

194200
allocate(params_inst%mimics_mge(ndecomp_pools_max))
195-
tString='mimics_mge'
201+
tString= trim(param_pref) // '_mge'
196202
call ncd_io(trim(tString), params_inst%mimics_mge(:), 'read', ncid, readvar=readv)
197203
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
198204

199205
allocate(params_inst%mimics_vmod(ndecomp_pools_max))
200-
tString='mimics_vmod'
206+
tString= trim(param_pref) // '_vmod'
201207
call ncd_io(trim(tString), params_inst%mimics_vmod(:), 'read', ncid, readvar=readv)
202208
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
203209

204210
allocate(params_inst%mimics_vslope(ndecomp_pools_max))
205-
tString='mimics_vslope'
211+
tString= trim(param_pref) // '_vslope'
206212
call ncd_io(trim(tString), params_inst%mimics_vslope(:), 'read', ncid, readvar=readv)
207213
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
208214

209215
allocate(params_inst%mimics_vint(ndecomp_pools_max))
210-
tString='mimics_vint'
216+
tString= trim(param_pref) // '_vint'
211217
call ncd_io(trim(tString), params_inst%mimics_vint(:), 'read', ncid, readvar=readv)
212218
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
213219

214220
allocate(params_inst%mimics_kmod(ndecomp_pools_max))
215-
tString='mimics_kmod'
221+
tString= trim(param_pref) // '_kmod'
216222
call ncd_io(trim(tString), params_inst%mimics_kmod(:), 'read', ncid, readvar=readv)
217223
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
218224

219225
allocate(params_inst%mimics_kslope(ndecomp_pools_max))
220-
tString='mimics_kslope'
226+
tString= trim(param_pref) // '_kslope'
221227
call ncd_io(trim(tString), params_inst%mimics_kslope(:), 'read', ncid, readvar=readv)
222228
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
223229

224230
allocate(params_inst%mimics_kint(ndecomp_pools_max))
225-
tString='mimics_kint'
231+
tString= trim(param_pref) // '_kint'
226232
call ncd_io(trim(tString), params_inst%mimics_kint(:), 'read', ncid, readvar=readv)
227233
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
228234

229235
allocate(params_inst%mimics_p_scalar(2))
230-
tString='mimics_p_scalar'
236+
tString= trim(param_pref) // '_p_scalar'
231237
call ncd_io(trim(tString), params_inst%mimics_p_scalar(:), 'read', ncid, readvar=readv)
232238
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
233239

234240
allocate(params_inst%mimics_desorp(2))
235-
tString='mimics_desorp'
241+
tString= trim(param_pref) // '_desorp'
236242
call ncd_io(trim(tString), params_inst%mimics_desorp(:), 'read', ncid, readvar=readv)
237243
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
238244

239245
allocate(params_inst%mimics_fphys_r(2))
240-
tString='mimics_fphys_r'
246+
tString= trim(param_pref) // '_fphys_r'
241247
call ncd_io(trim(tString), params_inst%mimics_fphys_r(:), 'read', ncid, readvar=readv)
242248
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
243249

244250
allocate(params_inst%mimics_fphys_k(2))
245-
tString='mimics_fphys_k'
251+
tString= trim(param_pref) // '_fphys_k'
246252
call ncd_io(trim(tString), params_inst%mimics_fphys_k(:), 'read', ncid, readvar=readv)
247253
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
248254

249255
allocate(params_inst%mimics_fmet(4))
250-
tString='mimics_fmet'
256+
tString= trim(param_pref) // '_fmet'
251257
call ncd_io(trim(tString), params_inst%mimics_fmet(:), 'read', ncid, readvar=readv)
252258
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
253259

254260
allocate(params_inst%mimics_fchem_r(2))
255-
tString='mimics_fchem_r'
261+
tString= trim(param_pref) // '_fchem_r'
256262
call ncd_io(trim(tString), params_inst%mimics_fchem_r(:), 'read', ncid, readvar=readv)
257263
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
258264

259265
allocate(params_inst%mimics_fchem_k(2))
260-
tString='mimics_fchem_k'
266+
tString= trim(param_pref) // '_fchem_k'
261267
call ncd_io(trim(tString), params_inst%mimics_fchem_k(:), 'read', ncid, readvar=readv)
262268
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
263269

264270
allocate(params_inst%mimics_tau_r(2))
265-
tString='mimics_tau_r'
271+
tString= trim(param_pref) // '_tau_r'
266272
call ncd_io(trim(tString), params_inst%mimics_tau_r(:), 'read', ncid, readvar=readv)
267273
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
268274

269275
allocate(params_inst%mimics_tau_k(2))
270-
tString='mimics_tau_k'
276+
tString= trim(param_pref) // '_tau_k'
271277
call ncd_io(trim(tString), params_inst%mimics_tau_k(:), 'read', ncid, readvar=readv)
272278
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
273279

274-
tString='mimics_nue_into_mic'
280+
tString= trim(param_pref) // '_nue_into_mic'
275281
call ncd_io(trim(tString), tempr, 'read', ncid, readvar=readv)
276282
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
277283
params_inst%mimics_nue_into_mic = tempr
278284

279-
tString='mimics_tau_mod_factor'
285+
tString= trim(param_pref) // '_tau_mod_factor'
280286
call ncd_io(trim(tString), tempr, 'read', ncid, readvar=readv)
281287
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
282288
params_inst%mimics_tau_mod_factor = tempr
283289

284-
tString='mimics_tau_mod_min'
290+
tString= trim(param_pref) // '_tau_mod_min'
285291
call ncd_io(trim(tString), tempr, 'read', ncid, readvar=readv)
286292
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
287293
params_inst%mimics_tau_mod_min = tempr
288294

289-
tString='mimics_tau_mod_max'
295+
tString= trim(param_pref) // '_tau_mod_max'
290296
call ncd_io(trim(tString), tempr, 'read', ncid, readvar=readv)
291297
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
292298
params_inst%mimics_tau_mod_max = tempr
293299

294-
tString='mimics_ko_r'
300+
tString= trim(param_pref) // '_ko_r'
295301
call ncd_io(trim(tString), tempr, 'read', ncid, readvar=readv)
296302
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
297303
params_inst%mimics_ko_r = tempr
298304

299-
tString='mimics_ko_k'
305+
tString= trim(param_pref) // '_ko_k'
300306
call ncd_io(trim(tString), tempr, 'read', ncid, readvar=readv)
301307
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
302308
params_inst%mimics_ko_k = tempr
303309

304-
tString='mimics_densdep'
310+
tString= trim(param_pref) // '_densdep'
305311
call ncd_io(trim(tString), tempr, 'read', ncid, readvar=readv)
306312
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
307313
params_inst%mimics_densdep = tempr
308314

309-
tString='mimics_desorpQ10'
315+
tString= trim(param_pref) // '_desorpQ10'
310316
call ncd_io(trim(tString), tempr, 'read', ncid, readvar=readv)
311317
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
312318
params_inst%mimics_desorpQ10 = tempr
313319

314-
tString='mimics_t_soi_ref'
320+
tString= trim(param_pref) // '_t_soi_ref'
315321
call ncd_io(trim(tString), tempr, 'read', ncid, readvar=readv)
316322
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
317323
params_inst%mimics_t_soi_ref = tempr
318324

319-
tString='mimics_cn_mod_num'
325+
tString= trim(param_pref) // '_cn_mod_num'
320326
call ncd_io(trim(tString), tempr, 'read', ncid, readvar=readv)
321327
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
322328
params_inst%mimics_cn_mod_num = tempr
323329

324-
tString='mimics_cn_r'
330+
tString= trim(param_pref) // '_cn_r'
325331
call ncd_io(trim(tString), tempr, 'read', ncid, readvar=readv)
326332
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
327333
params_inst%mimics_cn_r = tempr
328334

329-
tString='mimics_cn_k'
335+
tString= trim(param_pref) // '_cn_k'
330336
call ncd_io(trim(tString), tempr, 'read', ncid, readvar=readv)
331337
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
332338
params_inst%mimics_cn_k = tempr
333339

340+
! Parameters specific for mimicsplus / mimics parameters that have updated values in mimicsplus
341+
342+
if (decomp_method == mimicsplus_decomp) then
343+
344+
tString='name_parameter'
345+
call ncd_io(trim(tString), tempr, 'read', ncid, readvar=readv)
346+
if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__))
347+
params_inst%name_parameter = tempr
348+
349+
end if
350+
334351
end subroutine readParams
335352

336353
!-----------------------------------------------------------------------

0 commit comments

Comments
 (0)