43
44
45
52
53
54
55#include "implicit_f.inc"
56
57
58
59 INTEGER NTABLE, NTABLE1,L,NFUNCT,NPC(*)
61 TYPE(TTABLE) TABLE(*)
62 INTEGER NOM_OPT(LNOPT1,*)
63 TYPE(SUBMODEL_DATA), DIMENSION(NSUBMOD), INTENT(IN) :: LSUBMODEL
64 TYPE(UNIT_TYPE_), INTENT(IN) :: UNITAB
65
66
67
68#include "scr17_c.inc"
69#include "units_c.inc"
70
71
72
73 INTEGER ITYPE, IBID, NFUNCT0
74 INTEGER I, J, K, II, N, NDIM, NX(4), NY,
75 . JREC, NPTS, STAT, LL,NPT,IPT
76 INTEGER IERROR, NF, IDFUNC, NP
78 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
79 CHARACTER MESS*40
80 CHARACTER(LEN=NCHARFIELD) :: KEY
81 DATA mess/' FUNCTION & TABLE DEFINITION '/
82 LOGICAL :: IS_ENCRYPTED, IS_AVAILABLE
83
84 is_encrypted = .false.
85 is_available = .false.
86
88 DO i=1,ntable1
89
90
92 . option_titr = titr,
93 . option_id = ll)
95
96 nx(1) = 0
97 nx(2) = 0
98 nx(3) = 0
99 nx(4) = 0
100
101 CALL hm_get_intv(
'ORDER', ndim, is_available, lsubmodel)
102 IF(ndim/=1.AND.ndim/=2.AND.ndim/=3.AND.ndim/=4)THEN
104 . msgtype=msgerror,
105 . anmode=aninfo_blind_1,
106 . i1=ll,
107 . c1=titr)
108 END IF
109 CALL hm_get_intv(
'curverows', npt, is_available, lsubmodel)
110
111 IF(ndim==1)THEN
112 l=l+1
113 npts=npt
114 npc(nfunct+l+1)=ll
115 npc(l+1)=npc(l)
116
117 npts=0
118
119 DO ipt = 1, npt
121
123 npts=npts+1
124 pld(npc(l+1))=time
125 IF(npts > 1 .AND. pld(npc(l+1)) <= pld(npc(l+1)-2))THEN
127 . msgtype=msgerror,
128 . anmode=aninfo_blind_1,
129 . i1=ll,
130 . c1=titr1,
131 . i2=npts,
132 . i3=npts-1)
133 ENDIF
134 npc(l+1)=npc(l+1)+1
135 pld(npc(l+1))=funct
136 npc(l+1)=npc(l+1)+1
137 ENDDO
138
139
140 table(l)%NOTABLE=ll
141 table(l)%NDIM =1
142 ALLOCATE(table(l)%X(1),stat=stat)
143 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
144 . msgtype=msgerror,
145 . c1='TABLE')
146 ALLOCATE(table(l)%X(1)%VALUES(npts),stat=stat)
147 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
148 . msgtype=msgerror,
149 . c1='TABLE')
150
151 ALLOCATE(table(l)%Y,stat=stat)
152 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
153 . msgtype=msgerror,
154 . c1='TABLE')
155 ALLOCATE(table(l)%Y%VALUES(npts),stat=stat)
156 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
157 . msgtype=msgerror,
158 . c1='TABLE')
159
160 DO n=1,npts
161 table(l)%X(1)%VALUES(n)=pld(npc(l)+2*n-2)
162 table(l)%Y%VALUES(n) =pld(npc(l)+2*n-1)
163 END DO
164
165 IF (is_encrypted)THEN
166 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
167 ELSE
168 WRITE(iout,2100) table(l)%NOTABLE, table(l)%NDIM
169 DO k=1,table(l)%NDIM
170 nx(k)=SIZE( table(l)%X(k)%VALUES )
171 WRITE(iout,2200) k
172 WRITE(iout,2250) (table(l)%X(k)%VALUES(n),n=1,nx(k))
173 END DO
174 ny=SIZE(table(l)%Y%VALUES)
175 WRITE(iout,2300)
176 WRITE(iout,2350) (table(l)%Y%VALUES(n),n=1,ny)
177 END IF
178
179 endif
180 ENDDO
181
182 RETURN
183
1842000 FORMAT(//
185 . ' TABLES'/
186 . ' ------'/
187 . ' NUMBER OF TABLES . . . . . . . . . . =',i10/)
1882100 FORMAT(/' TABLE ID . . . . . . . . . . . . . . =',i10/
189 . ' NUMBER OF PARAMETERS . . . . . . . . =',i10/)
1902200 FORMAT(/' VALUES FOR PARAMETER NUMBER. . . . . .',i4,':'/)
1912250 FORMAT((3x,5(1x,g20.13))/)
1922300 FORMAT(/' ORDINATE VALUES . . . . . . . . . . . :'/)
1932350 FORMAT((3x,5(1x,g20.13))/)
subroutine hm_get_float_array_index(name, rval, index, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)
subroutine hm_option_start(entity_type)
integer, parameter nchartitle
integer, parameter ncharfield
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)