42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 USE my_alloc_mod
66
67
68
69#include "implicit_f.inc"
70
71
72
73#include "com01_c.inc"
74#include "com04_c.inc"
75#include "scr15_c.inc"
76#include "scr17_c.inc"
77#include "units_c.inc"
78#include "userlib.inc"
79#include "tabsiz_c.inc"
80
81
82
83 TYPE(USER_WINDOWS_),INTENT(INOUT) :: USER_WINDOWS
84 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(*)
85 INTEGER, DIMENSION(NUMNOD),INTENT(IN) :: ITAB
86 my_real,
DIMENSION(3,NUMNOD),
INTENT(IN) :: x, v, vr
87 my_real,
DIMENSION(NUMNOD),
INTENT(IN) :: ms,in
88
89
90
91 CHARACTER(LEN=4096) :: SCR_FILE_NAME
92 CHARACTER(LEN=ncharline) :: RLINE
93 CHARACTER (LEN=4) :: CWIN
94 LOGICAL :: IS_AVAILABLE
95 INTEGER ,DIMENSION(100) :: IUPARAM
96 INTEGER :: NLINES,J,USERWI_ID
97 INTEGER :: SCR_FILE_NAME_LEN
98 INTEGER :: NUVAR,NUVARI
99
100 CHARACTER OPTION*256
101 INTEGER SIZE
102
103 is_available = .false.
104
105 IF (userl_avail == 0)THEN
106
107 option='/USERWI'
108 size=len_trim(option)
110 . msgtype=msgerror,c1=option(1:size),anmode=aninfo)
112 ENDIF
113
115
117 * option_id = userwi_id)
118
119 user_windows%USER_WINDOWS_ID = userwi_id
120
121 CALL hm_get_intv (
'Number_of_datalines' ,nlines ,is_available
122
123
124 WRITE(cwin,'(I4.4)') 1
125 scr_file_name='SI'//rootnam(1:rootlen)//'_'//cwin//'.scr'
126 scr_file_name_len=len_trim(scr_file_name)
127 OPEN(unit=30,file=trim(scr_file_name),form=
'FORMATTED',recl=
ncharline)
128 WRITE(30,'(A)') '/USERWI'
129
130 IF (nlines > 0) THEN
131
132
133 DO j=1,nlines
135 WRITE(30,fmt='(A)')trim(rline)
136 ENDDO
137
138 ENDIF
139
140 CLOSE(unit=30)
141
142
143 iuparam = 0
144 user_windows%NUVAR = 0
145 user_windows%NUVARI = 0
146
147 CALL st_userlib_userwis_ini(rootnam,rootlen,
148 . iuparam ,numnod ,itab,
149 . x ,v ,vr ,ms ,in ,
150 . nuvar ,nuvari )
152
153 user_windows%NUVAR = nuvar
154 user_windows%NUVARI = nuvari
155
156 user_windows%S_USER = nuvar
157 user_windows%S_IUSER = nuvari+100
158
159 CALL my_alloc(user_windows%IUSER,user_windows%S_IUSER)
160 CALL my_alloc(user_windows%USER,user_windows%S_USER)
161
162 user_windows%USER(1:user_windows%S_USER) = zero
163 user_windows%IUSER(1:user_windows%S_IUSER) = 0
164
165 user_windows%IUSER(nuvari+1:nuvari+100)=iuparam(1:100)
166
167
168
169 WRITE(cwin,'(I4.4)') 1
170 scr_file_name='SI'//rootnam(1:rootlen)//'_'//cwin//'.scr'
171 scr_file_name_len=len_trim(scr_file_name)
172 OPEN(unit=30,file=trim(scr_file_name),form=
'FORMATTED',recl=
ncharline
173 WRITE(30,'(A)') '/USERWI'
174
175
176 DO j=1,nlines
178 WRITE(30,fmt='(A)')trim(rline)
179 ENDDO
180 CLOSE(unit=30)
181
182 CALL st_userlib_userwis(rootnam, rootlen, numnod, itab,
183 . x, v, vr, ms, in,
184 . user_windows%NUVAR, user_windows%NUVARI,
185 . user_windows%USER, user_windows%IUSER )
186
188
189
190 RETURN
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_get_string_index(name, sval, index, size, is_available)
subroutine hm_option_start(entity_type)
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)