47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
68 USE matparam_def_mod
70 USE format_mod , ONLY : fmt_2f
71 USE reader_old_mod , ONLY : kcur, kline, line,key0
72
73
74
75#include "implicit_f.inc"
76
77
78
79#include "scr15_c.inc"
80#include "scr17_c.inc"
81#include "param_c.inc"
82#include "units_c.inc"
83
84
85
86 INTEGER ILAW
87 INTEGER USERL_AVAIL
88 INTEGER MAXUPARAM
89 INTEGER NUPARAM
90 INTEGER NUVAR
91 INTEGER NFUNC,
92 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(NSUBMOD)
93 INTEGER, DIMENSION(MAXFUNC) :: IFUNC
94 my_real,
DIMENSION(100) :: parmat
95 my_real,
DIMENSION(MAXUPARAM) :: uparam
96 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: pm
97 CHARACTER(LEN=NCHARLINE) :: IUSER_KEY
98 TYPE (MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
99
100
101
102 CHARACTER(LEN=4096) :: SCR_FILE_NAME
103 CHARACTER(LEN=NCHARLINE) :: RLINE
104 CHARACTER (LEN=4) :: CLAW
105 LOGICAL :: IS_AVAILABLE
106 INTEGER NLINES,J
107 INTEGER SCR_FILE_NAME_LEN
109
110 CHARACTER OPTION*256
111 INTEGER SIZE
112
113 is_available = .false.
114
115 IF (userl_avail == 0)THEN
116
117 option='/MAT/'//iuser_key
118 size=len_trim(option)
120 . msgtype=msgerror,c1=option(1:size),anmode=aninfo)
122 ENDIF
123
124
125 CALL hm_get_intv (
'Number_of_datalines' ,nlines ,is_available, lsubmodel)
126
127 IF(nlines > 1)THEN
128
129
130 j=1
132 READ(rline,err=999,fmt=fmt_2f)rho0,rhor
133
134 pm(1)=rhor
135 pm(89)=rho0
136
137
138 WRITE(claw,'(I4.4)')ilaw
139 scr_file_name='SI'//rootnam(1:rootlen)//'_'//claw//'.scr'
140 scr_file_name_len=len_trim(scr_file_name)
141 OPEN(unit=30,file=trim(scr_file_name),form=
'FORMATTED',recl=
ncharline)
142
143
144 DO j=2,nlines
146 WRITE(30,fmt='(A)')trim(rline)
147 ENDDO
148 CLOSE(unit=30)
149
150 CALL st_userlib_usermat(ilaw,rootnam,rootlen,
151 . uparam,maxuparam,nuparam,
152 . nuvar ,ifunc,maxfunc,nfunc ,parmat)
153
155 ELSE
156
157 ENDIF
158
159
163
164 RETURN
165 999
CALL ancmsg(msgid=55,anmode=aninfo,msgtype=msgerror,c1=key0(kcur),c2=kline,c3=line)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_get_string_index(name, sval, index, size, is_available)
subroutine init_mat_keyword(matparam, keyword)
integer, parameter nchartitle
integer, parameter ncharline
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
subroutine user_output(iout, ilaw, rootn, rootlen, inpf)