Subroutine read_shufflevar
334 :
335 : !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
336 : !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
337 : !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
338 :
339 : subroutine read_shufflevar ()
340 : use vom_sce_mod
341 : implicit none
342 :
343 : INTEGER :: iostat
344 : CHARACTER(9) :: parname0 (nparmax)
345 : REAL*8 :: parval0 (nparmax)
346 : REAL*8 :: parmin0 (nparmax)
347 : REAL*8 :: parmax0 (nparmax)
348 : INTEGER :: paropt0 (nparmax)
349 :
350 : ! * Definition of variable parameters
351 :
352 : namelist /shuffle2par/ parname0, parval0, parmin0, parmax0, paropt0
353 :
354 : ! * LOAD INITIAL PARAMETER VALUES AND PARAMETER RANGES
355 : if( .not. allocated(parname) ) then
356 : open(kfile_namelist, FILE=sfile_namelist, STATUS='old', &
357 : & FORM='formatted', IOSTAT=iostat)
358 : if (iostat .eq. 0) then
359 : read(kfile_namelist, shuffle2par)
360 : endif
361 : close(kfile_namelist)
362 :
363 : ! * allocate and set the parameter fields
364 :
365 : allocate(parname(vom_npar))
366 : allocate(parval(vom_npar))
367 : allocate(parmin(vom_npar))
368 : allocate(parmax(vom_npar))
369 : allocate(paropt(vom_npar))
370 : end if
371 : parname(:) = parname0(1:vom_npar)
372 : parval(:) = parval0(1:vom_npar)
373 : parmin(:) = parmin0(1:vom_npar)
374 : parmax(:) = parmax0(1:vom_npar)
375 : paropt(:) = paropt0(1:vom_npar)
376 :
377 : return
378 : end subroutine read_shufflevar