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 I, K, N, NDIM, NX(4), NY,
74 . NPTS, STAT, LL,NPT,IPT
76 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
77 CHARACTER MESS*40
78 DATA mess/' FUNCTION & TABLE DEFINITION '/
79 LOGICAL :: IS_ENCRYPTED, IS_AVAILABLE
80
81 is_encrypted = .false.
82 is_available = .false.
83
85 DO i=1,ntable1
86
87
89 . option_titr = titr,
90 . option_id = ll)
92
93 nx(1) = 0
94 nx(2) = 0
95 nx(3) = 0
96 nx(4) = 0
97
98 CALL hm_get_intv(
'ORDER', ndim, is_available, lsubmodel)
99 IF(ndim/=1.AND.ndim/=2.AND.ndim/=3.AND.ndim/=4)THEN
101 . msgtype=msgerror,
102 . anmode=aninfo_blind_1,
103 . i1=ll,
104 . c1=titr)
105 END IF
106 CALL hm_get_intv(
'curverows', npt, is_available, lsubmodel)
107
108 IF(ndim==1)THEN
109 l=l+1
110 npts=npt
111 npc(nfunct+l+1)=ll
112 npc(l+1)=npc(l)
113
114 npts=0
115
116 DO ipt = 1, npt
118
120 npts=npts+1
121 pld(npc(l+1))=time
122 IF(npts > 1 .AND. pld(npc(l+1)) <= pld(npc(l+1)-2))THEN
124 . msgtype=msgerror,
125 . anmode=aninfo_blind_1,
126 . i1=ll,
127 . c1=titr1,
128 . i2=npts,
129 . i3=npts-1)
130 ENDIF
131 npc(l+1)=npc(l+1)+1
132 pld(npc(l+1))=funct
133 npc(l+1)=npc(l+1)+1
134 ENDDO
135
136
137 table(l)%NOTABLE=ll
138 table(l)%NDIM =1
139 ALLOCATE(table(l)%X(1),stat=stat)
140 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
141 . msgtype=msgerror,
142 . c1='TABLE')
143 ALLOCATE(table(l)%X(1)%VALUES(npts),stat=stat)
144 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
145 . msgtype=msgerror,
146 . c1='TABLE')
147
148 ALLOCATE(table(l)%Y,stat=stat)
149 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
150 . msgtype=msgerror,
151 . c1='TABLE')
152 ALLOCATE(table(l)%Y%VALUES(npts),stat=stat)
153 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
154 . msgtype=msgerror,
155 . c1='TABLE')
156
157 DO n=1,npts
158 table(l)%X(1)%VALUES(n)=pld(npc(l)+2*n-2)
159 table(l)%Y%VALUES(n) =pld(npc(l)+2*n-1)
160 END DO
161
162 IF (is_encrypted)THEN
163 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
164 ELSE
165 WRITE(iout,2100) table(l)%NOTABLE, table(l)%NDIM
166 DO k=1,table(l)%NDIM
167 nx(k)=SIZE( table(l)%X(k)%VALUES )
168 WRITE(iout,2200) k
169 WRITE(iout,2250) (table(l)%X(k)%VALUES(n),n=1,nx(k))
170 END DO
171 ny=SIZE(table(l)%Y%VALUES)
172 WRITE(iout,2300)
173 WRITE(iout,2350) (table(l)%Y%VALUES(n),n=1,ny)
174 END IF
175
176 endif
177 ENDDO
178
179 RETURN
180
1812100 FORMAT(/' TABLE ID . . . . . . . . . . . . . . =',i10/
182 . ' NUMBER OF PARAMETERS . . . . . . . . =',i10/)
1832200 FORMAT(/' VALUES FOR PARAMETER NUMBER. . . . . .',i4,':'/)
1842250 FORMAT((3x,5(1x,g20.13))/)
1852300 FORMAT(/' ORDINATE VALUES . . . . . . . . . . . :'/)
1862350 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)