48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
70 USE matparam_def_mod
72 USE format_mod , ONLY : fmt_2f
73 USE reader_old_mod , ONLY : line, kline, kcur, key0
74
75
76
77#include "implicit_f.inc"
78
79
80
81#include "scr15_c.inc"
82#include "scr17_c.inc"
83#include "param_c.inc"
84#include "units_c.inc"
85
86
87
88 INTEGER ILAW,IUSER_LAW
89 INTEGER USERL_AVAIL
90 INTEGER MAXUPARAM
91 INTEGER NUPARAM
92 INTEGER NUVAR
93 INTEGER NFUNC,MAXFUNC
94 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(NSUBMOD)
95 INTEGER, DIMENSION(MAXFUNC) :: IFUNC
96 my_real,
DIMENSION(100) :: parmat
97 my_real,
DIMENSION(MAXUPARAM) :: uparam
98 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: pm
99 TYPE(ULAWBUF) :: USERBUF
100 CHARACTER(LEN=NCHARLINE) :: IUSER_KEY
101 TYPE(MATPARAM_STRUCT_),INTENT(INOUT) :: MATPARAM
102
103
104
105 CHARACTER(LEN=4096) :: SCR_FILE_NAME
106 CHARACTER(LEN=NCHARLINE) :: RLINE
107 CHARACTER (LEN=4) :: CLAW
108 CHARACTER(LEN=NCHARTITLE) :: TITLE
109 LOGICAL :: IS_AVAILABLE
110 INTEGER NLINES,J,MAT_ID
111 INTEGER SCR_FILE_NAME_LEN
113 CHARACTER OPTION*256
114 INTEGER SIZE
115
116 is_available = .false.
117
118 IF (userl_avail == 0)THEN
119
120 option='/MAT/'//iuser_key
121 size=len_trim(option)
122 CALL ancmsg(msgid=1130,msgtype=msgerror,c1=option(1:size),anmode=aninfo)
124 ENDIF
125
126
127 CALL hm_get_intv (
'Number_of_datalines' ,nlines ,is_available, lsubmodel)
128
129 IF(nlines > 1)THEN
130
131
132 j=1
134 READ(rline,err=999,fmt=fmt_2f)rho0,rhor
135
136 pm(1)=rhor
137 pm(89)=rho0
138
139
140 WRITE(claw,'(I4.4)')ilaw
141 scr_file_name='SI'//rootnam(1:rootlen)//'_'//claw//'.scr'
142 scr_file_name_len=len_trim(scr_file_name)
143 OPEN(unit=30,file=trim(scr_file_name),form=
'FORMATTED',recl=
ncharline)
144
145
146 DO j=2,nlines
148 WRITE(30,fmt='(A)')trim(rline)
149 ENDDO
150 CLOSE(unit=30)
151
152 CALL st_userlib_lecm99(ilaw,rootnam,rootlen,iuser_law ,
153 . uparam,maxuparam,
154 . nuparam,nuvar ,ifunc ,maxfunc,nfunc ,
155 . parmat ,userbuf)
156 mat_id = userbuf%ID
157 title = userbuf%NAME
158 title = trim(title)
159 CALL st_get_userbuf_var(mat_id,title)
160
162 ELSE
163
164 ENDIF
165
166
169
170 RETURN
171 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)