43
44
45
52
53
54
55#include "implicit_f.inc"
56
57
58
59 INTEGER L,NTABLE,NTABLE0,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, JREC, NPTS, STAT, LL
75 INTEGER IERROR, NF, IDFUNC, NP
77 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
78 CHARACTER(LEN=NCHARFIELD) ::
79 CHARACTER MESS*40
80 DATA mess/' FUNCTION & TABLE DEFINITION '/
81 LOGICAL :: IS_ENCRYPTED, IS_AVAILABLE
82
83 is_encrypted = .false.
84 is_available = .false.
85
87 DO i=1,ntable0
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 CALL hm_get_intv(
'ORDER', ndim, is_available, lsubmodel)
98 IF(ndim/=1.AND.ndim/=2.AND.ndim/=3.AND.ndim/=4)THEN
100 . msgtype=msgerror,
101 . anmode=aninfo_blind_1,
102 . i1=ll,
103 . c1=titr)
104 END IF
105 IF(ndim > 0)
CALL hm_get_intv(
'N1', nx(1), is_available, lsubmodel)
106 IF(ndim==1)THEN
107 l=l+1
108 npts=nx(1)
109 npc(nfunct+l+1)=ll
110 npc(l+1)=npc(l)
111
112 DO n = 1, npts
114 END DO
115
116 DO N = 1, NPTS
117 CALL HM_GET_FLOAT_ARRAY_INDEX('eng_funct_yvalues',PLD(NPC(L)+2*N-1),N,IS_AVAILABLE,LSUBMODEL,UNITAB)
118 END DO
119 NPC(L+1)=NPC(L)+2*NPTS
120
121 TABLE(L)%NOTABLE=LL
122 TABLE(L)%NDIM =1
123
124 ALLOCATE(TABLE(L)%X(1),STAT=stat)
125 IF (STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
126 . MSGTYPE=MSGERROR,
127 . C1='table')
128 ALLOCATE(TABLE(L)%X(1)%VALUES(NPTS),STAT=stat)
129 IF (STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
130 . MSGTYPE=MSGERROR,
131 . C1='table')
132
133 ALLOCATE(TABLE(L)%Y,STAT=stat)
134 IF (STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
135 . MSGTYPE=MSGERROR,
136 . C1='table')
137 ALLOCATE(TABLE(L)%Y%VALUES(NPTS),STAT=stat)
138 IF (STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
139 . MSGTYPE=MSGERROR,
140 . C1='table')
141
142 DO N=1,NPTS
143 TABLE(L)%X(1)%VALUES(N)=PLD(NPC(L)+2*N-2)
144 TABLE(L)%Y%VALUES(N) =PLD(NPC(L)+2*N-1)
145 END DO
146
147 IF (IS_ENCRYPTED)THEN
148 WRITE(IOUT,'(5x,a,//)')'confidential data'
149 ELSE
150 WRITE(IOUT,2100) TABLE(L)%NOTABLE, TABLE(L)%NDIM
151 DO K=1,TABLE(L)%NDIM
152 NX(K)=SIZE( TABLE(L)%X(K)%VALUES )
153 WRITE(IOUT,2200) K
154 WRITE(IOUT,2250) (TABLE(L)%X(K)%VALUES(N),N=1,NX(K))
155 END DO
156 NY=SIZE(TABLE(L)%Y%VALUES)
157 WRITE(IOUT,2300)
158 WRITE(IOUT,2350) (TABLE(L)%Y%VALUES(N),N=1,NY)
159 END IF!(IS_ENCRYPTED > 0)
160 ENDIF!(NDIM==1)
161 ENDDO !I=1,NTABLE0
162 RETURN
163
1642000 FORMAT(//
165 . ' tables'/
166 . ' ------'/
167 . ' number of tables . . . . . . . . . . =',I10/)
1682100 FORMAT(/' table
id . . . . . . . . . . . . . . =
',I10/
169 . ' number of parameters . . . . . . . . =',I10/)
1702200 FORMAT(/' values
for PARAMETER number. . . . . .
',I4,':
'/)
1712250 FORMAT((3X,5(1X,G20.13))/)
1722300 FORMAT(/' ordinate values . . . . . . . . . . . :'/)
1732350 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)
for(i8=*sizetab-1;i8 >=0;i8--)
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)