22 integer,
parameter ::
dp = kind(1.0d0)
27 character(20) :: jobname
38 character(20) :: bml_type
39 character(10) :: sp2conv
40 character(10) :: flavor
53 integer,
parameter :: nkey_char = 4, nkey_int = 6, nkey_re = 3, nkey_log = 1
54 character(len=*) :: filename
57 character(len=50),
parameter :: keyvector_char(nkey_char) = [character(len=100) :: &
58 'JobName=',
'BMLType=',
'SP2Conv=',
'Flavor=' ]
59 character(len=100) :: valvector_char(nkey_char) = [character(len=100) :: &
60 'MyJob' ,
'Dense' ,
'REL',
'Alg2' ]
62 character(len=50),
parameter :: keyvector_int(nkey_int) = [character(len=50) :: &
63 'MDim=',
'VarInt=',
'MinSP2Iter=',
'MaxSP2Iter=',
'Ndim=',
'Verbose=']
64 integer :: valvector_int(nkey_int) = (/ &
65 -1 , 0 , 10 , 100 , 1, 0 /)
67 character(len=50),
parameter :: keyvector_re(nkey_re) = [character(len=50) :: &
68 'NumThresh=',
'SP2Tol=',
'BndFil=' ]
69 real(
dp) :: valvector_re(nkey_re) = (/&
70 0.0 , 0.00000001 ,0.0 /)
72 character(len=50),
parameter :: keyvector_log(nkey_log) = [character(len=100) :: &
74 logical :: valvector_log(nkey_log) = (/&
78 character(len=50),
parameter :: startstop(2) = [character(len=50) :: &
82 ,keyvector_int,valvector_int,keyvector_re,valvector_re,&
83 keyvector_log,valvector_log,trim(filename),startstop)
86 sp2data%JobName = valvector_char(1)
88 if(valvector_char(2) ==
"Dense")
then
89 sp2data%bml_type = bml_matrix_dense
90 elseif(valvector_char(2) ==
"Ellpack")
then
91 sp2data%bml_type = bml_matrix_ellpack
92 elseif(valvector_char(2) ==
"Ellblock")
then
93 sp2data%bml_type = bml_matrix_ellblock
95 sp2data%sp2conv = valvector_char(3)
96 sp2data%flavor = valvector_char(4)
99 sp2data%threshold = valvector_re(1)
100 sp2data%sp2tol = valvector_re(2)
101 sp2data%BndFil = valvector_re(3)
106 sp2data%mdim = valvector_int(1)
107 sp2data%minsp2iter = valvector_int(3)
108 sp2data%maxsp2iter = valvector_int(4)
109 sp2data%ndim = valvector_int(5)
110 sp2data%verbose = valvector_int(6)
Some general parsing functions.
subroutine, public prg_parsing_kernel(keyvector_char, valvector_char, keyvector_int, valvector_int, keyvector_re, valvector_re, keyvector_log, valvector_log, filename, startstop)
The general parsing function. It is used to vectorize a set of "keywords" "value" pairs as included i...
Module to handle input output files for the PROGRESS lib.
subroutine, public prg_parse_sp2(sp2data, filename)
The parser for SP2 solver.