53#include
"implicit_f.inc"
57 INTEGER NTABLE0,NFUNCT,L
59 TYPE(
submodel_data),
DIMENSION(NSUBMOD),
INTENT(IN) :: LSUBMODEL
69 INTEGER I, , K, II, N, ID, NDIM, NX(4), NY,
70 . JREC, NPTS, STAT, IDS, LL, LX(2)
71 INTEGER,
DIMENSION(:),
ALLOCATABLE :: JPERM1,JPERM2
72 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ITAG
74 my_real bid, xk, xx, x1, x2, x234(3), yy, y1, y2, r, xmin, xmax,time, funct,scaley
76 my_real,
DIMENSION(:),
ALLOCATABLE :: xv1, xstor1, xstor2
77 my_real,
DIMENSION(:,:),
ALLOCATABLE :: xv2
78 CHARACTER(LEN=NCHARTITLE) :: TITR
80 CHARACTER(LEN=NCHARFIELD) :: KEY
81 DATA mess/
' FUNCTION & TABLE DEFINITION '/
82 LOGICAL :: IS_ENCRYPTED, IS_AVAILABLE
85 is_encrypted = .false.
86 is_available = .false.
98 CALL hm_get_intv(
'ORDER', ndim, is_available, lsubmodel)
99 IF(ndim/=1.AND.ndim/=2.AND.ndim/=3.AND.ndim/=4)
THEN
102 . anmode=aninfo_blind_1,
106 IF(ndim > 0)
CALL hm_get_intv(
'N1', nx(1), is_available, lsubmodel)
107 IF(ndim > 1)
CALL hm_get_intv(
'N2', nx(2), is_available, lsubmodel)
108 IF(ndim > 2)
CALL hm_get_intv(
'N3', nx(3), is_available, lsubmodel)
109 IF(ndim > 3)
CALL hm_get_intv(
'N4', nx(4), is_available, lsubmodel)
116 ALLOCATE(table(l)%X(ndim),stat=stat)
117 IF(stat/=0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,
124 . anmode=aninfo_blind_1,
131 ALLOCATE(table(l)%X(1)%VALUES(nx(1)),stat=stat)
132 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
139 table(l)%X(1)%VALUES(n)= xk
143 ALLOCATE(table(l)%X(2)%VALUES(nx(2)),stat=stat)
144 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
150 TABLE(L)%X(2)%VALUES(N)= XK
153 ALLOCATE(TABLE(L)%X(3)%VALUES(NX(3)),STAT=stat)
154 IF (STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
158 CALL HM_GET_FLOAT_ARRAY_INDEX('temparray2d_n3
',XK,N,IS_AVAILABLE, LSUBMODEL, UNITAB)
159 TABLE(L)%X(3)%VALUES(N)= XK
162 ALLOCATE(TABLE(L)%X(4)%VALUES(NX(4)),STAT=stat)
163 IF (STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
167 CALL HM_GET_FLOAT_ARRAY_INDEX('temparray2d_n4
',XK,N,IS_AVAILABLE, LSUBMODEL, UNITAB)
168 TABLE(L)%X(4)%VALUES(N)= XK
173 ! number of ordinate values
176 NY=NY*SIZE(TABLE(L)%X(K)%VALUES)
178 ALLOCATE(TABLE(L)%Y,STAT=stat)
180 IF (STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
184 ALLOCATE(TABLE(L)%Y%VALUES(NY),STAT=stat)
186 IF (STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
190 ! read ordinate values
192 CALL HM_GET_FLOAT_ARRAY_INDEX('eng_funct_yvalues
',YY,N,IS_AVAILABLE, LSUBMODEL, UNITAB)
193 TABLE(L)%Y%VALUES(N)=YY
197 IF (IS_ENCRYPTED)THEN
198 WRITE(IOUT,'(a)
')'confidential data
'
200 WRITE(IOUT,2100) TABLE(L)%NOTABLE, TABLE(L)%NDIM
202 NX(K)=SIZE( TABLE(L)%X(K)%VALUES )
204 WRITE(IOUT,2250) (TABLE(L)%X(K)%VALUES(N),N=1,NX(K))
206 NY=SIZE(TABLE(L)%Y%VALUES)
208 WRITE(IOUT,2350) (TABLE(L)%Y%VALUES(N),N=1,NY)
217 . ' number of tables . . . . . . . . . . =
',I10/)
2182100 FORMAT(/' table id . . . . . . . . . . . . . . =
',I10/
219 . ' number of parameters . . . . . . . . =
',I10/)
2202200 FORMAT(/' values
for PARAMETER number. . . . . .
',I4,':
'/)
2212250 FORMAT((3X,5(1X,G20.13))/)
2222300 FORMAT(/' ordinate values . . . . . . . . . . . :
'/)
2232350 FORMAT((3X,5(1X,G20.13))/)
subroutine hm_option_read_key(lsubmodel, option_id, unit_id, submodel_index, submodel_id, option_titr, keyword1, keyword2, keyword3, keyword4, opt_pos)
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)