41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
64
65
66
67#include "implicit_f.inc"
68
69
70
71#include "scr15_c.inc"
72#include "param_c.inc"
73#include "userlib.inc"
74#include "tablen_c.inc"
75
76
77
78 INTEGER ,INTENT(IN) :: IOUT,IG,IUNIT
79 INTEGER ,INTENT(INOUT) :: IGTYP
80 INTEGER ,INTENT(IN) :: ISKN(LISKN,*)
81 CHARACTER(LEN=ncharkey) :: KEY
82 CHARACTER(LEN=nchartitle) :: TITLE
83 INTEGER NUVAR(2)
85 . pargeo(100)
86 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
87 TYPE (SUBMODEL_DATA) ,DIMENSION(NSUBMOD) :: LSUBMODEL
88 TYPE(PROP_TAG_) , DIMENSION(0:MAXPROP) :: PROP_TAG
89
90
91
92 my_real,
DIMENSION(4) :: unitab_sub
93 LOGICAL :: IS_AVAILABLE
94 INTEGER J,NLINES
95 CHARACTER(LEN=NCHARLINE) :: RLINE
96 CHARACTER (LEN=4)
97CHARACTER(LEN=4096) :: SCR_FILE_NAME
98 INTEGER SCR_FILE_NAME_LEN
99 CHARACTER(LEN=NCHARLINE) :: IUSER_KEY
100
101 CHARACTER OPTION*256
102 INTEGER SIZE
103
104
105 IF(key(1:5) == 'USER1' .OR. key(1:6) == 'TYPE29')THEN
106 igtyp=29
107 ELSEIF(key(1:5) == 'USER2' .OR. key(1:6) == 'TYPE30')THEN
108 igtyp=30
109 ELSEIF(key(1:5) == 'USER3' .OR. key(1:6) == 'TYPE31')THEN
110 igtyp=31
111 ENDIF
112
113 is_available = .false.
114
115 iuser_key = key(1:len_trim(key))
116 IF (userl_avail == 0)THEN
117
118 option='/PROP/'//iuser_key
119 size=len_trim(option)
121 . msgtype=msgerror,c1=option(1:size),anmode=aninfo)
123
124
125
126
127
128
129
130 ENDIF
131
132
133
134 WRITE(iout,1000) ig
135
136 CALL hm_get_intv (
'Number_of_datalines' ,nlines ,is_available, lsubmodel)
137
138
139
140 WRITE(cspri,'(I4.4)')igtyp
141 scr_file_name='SI'//rootnam(1:rootlen)//'_'//cspri//'.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
147 DO j=1,nlines
149 WRITE(30,fmt='(A)')trim(rline)
150 ENDDO
151 CLOSE(unit=30)
152
153 unitab_sub(1)=unitab%UNIT_ID(iunit)
154 unitab_sub(2)=unitab%FAC_M(iunit)
155 unitab_sub(3)=unitab%FAC_L(iunit)
156 unitab_sub(4)=unitab%FAC_T(iunit)
157
158 CALL st_userlib_lecguser(igtyp,rootnam,rootlen,nuvar ,pargeo,unitab_sub,iskn,ig,title)
160
161
162
163
164
165 prop_tag(igtyp)%G_EINT = 1
166 prop_tag(igtyp)%G_FOR = 3
167 prop_tag(igtyp)%G_MOM = 5
168 prop_tag(igtyp)%G_SKEW = 6
169 prop_tag(igtyp)%G_MASS = 1
170 prop_tag(igtyp)%G_V_REPCVT = 3
171 prop_tag(igtyp)%G_VR_REPCVT = 3
172
173 prop_tag(igtyp)%G_NUVAR =
max(prop_tag(igtyp)%G_NUVAR,nuvar(1))
174
175
176 RETURN
177
178 1000 FORMAT(
179 & 5x,'USER PROPERTY SET'/,
180 & 5x,'PROPERTY SET NUMBER . . . . . . . . . .=',i10)
181
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_get_string_index(name, sval, index, size, is_available)
integer, parameter nchartitle
integer, parameter ncharkey
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)