41 * IXS ,IXQ, IXC ,IXTG ,
42 * IXT ,IXP ,IXR ,KXSP,LRIVET,
57#include "implicit_f.inc"
67 INTEGER,
INTENT(in) :: MODE
68 TYPE(SUBMODEL_DATA),
INTENT(IN)::LSUBMODEL(*)
69 TYPE(MAPPING_STRUCT_) :: MAP_TABLES
70 TYPE (SUBSET_) ,
DIMENSION(NSUBS) :: SUBSET
72 INTEGER,
INTENT(IN),
DIMENSION(LIPART1,NPART) :: IPART
73 INTEGER,
INTENT(IN),
DIMENSION(NIXS,NUMELS) :: IXS
74 INTEGER,
INTENT(IN),
DIMENSION(NIXQ,NUMELQ) :: IXQ
75 INTEGER,
INTENT(IN),
DIMENSION(NIXC,NUMELC) :: IXC
76 INTEGER,
INTENT(IN),
DIMENSION(NIXTG,NUMELTG) :: IXTG
77 INTEGER,
INTENT(IN),
DIMENSION(NIXT,NUMELT) :: IXT
78 INTEGER,
INTENT(IN),
DIMENSION(NIXP,NUMELP) :: IXP
79 INTEGER,
INTENT(IN),
DIMENSION(NIXR,NUMELR) :: IXR
80 INTEGER,
DIMENSION(NISP,NUMSPH),
INTENT(in) :: KXSP
81 INTEGER,
DIMENSION(4,NRIVET),
INTENT(in) :: LRIVET
82 INTEGER,
INTENT(IN),
DIMENSION(2,NRBODY) :: RBY_MSN
87 INTEGER I, SET_ID,NSET_G,NSET_COL,OFFSET,NSET1,NSET2
88 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ISORT,ISORT2,SAV,SAV2
89 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INDEX_SORT,INDEX_SORT2
90 INTEGER,
DIMENSION(70000) :: IWORK
91 CHARACTER(LEN=NCHARFIELD) :: KEYSET,SET_TYPE,KEY_TYPE
92 CHARACTER(LEN=NCHARTITLE) :: TITLE,SET_TITLE,TITLE2
93 CHARACTER(LEN=NCHARKEY) :: KEYPART,KEY
95 DATA mess/
'SET GROUP DEFINITION '/
99 ALLOCATE( map_tables%IPARTM(npart,2))
101 ALLOCATE(isort(npart))
102 ALLOCATE(index_sort(2*npart))
108 CALL my_orders(0,iwork,isort,index_sort,npart,1)
111 map_tables%IPARTM(i,1)=isort(index_sort(i))
112 map_tables%IPARTM(i,2)=index_sort(i)
116 DEALLOCATE (index_sort)
123 ALLOCATE(isort(
nsets))
125 ALLOCATE(index_sort(2*
nsets))
128 ALLOCATE(isort2(
nsets))
129 ALLOCATE(sav2(
nsets))
130 ALLOCATE(index_sort2(2*
nsets))
135 . option_id = set_id,
136 . option_titr = set_title,
139 IF(trim(key) ==
'GENERAL')
THEN
144 index_sort(nset_g)=nset_g
146 ELSEIF (trim(key) ==
'COLLECT')
THEN
148 nset_col = nset_col + 1
149 isort2(nset_col)=set_id
151 index_sort2(nset_col)=i
158 CALL my_orders(0,iwork,isort,index_sort,nset_g,1)
159 ALLOCATE( map_tables%ISETM(nset_g,2))
162 map_tables%ISETM(i,1)=isort(index_sort(i))
163 map_tables%ISETM(i,2)=sav(index_sort(i))
168 nset1 = map_tables%ISETM(1,1)
170 nset2 = map_tables%ISETM(i,1)
171 IF (nset2 == nset1)
THEN
184 map_tables%NSET_GENERAL = nset_g
189 CALL my_orders(0,iwork,isort2,index_sort2,nset_col,1)
190 ALLOCATE( map_tables%ISETCOLM(nset_col,2))
193 map_tables%ISETCOLM(i,1)=isort2(index_sort2(i))
194 map_tables%ISETCOLM(i,2)=sav2(index_sort2(i))
196 map_tables%NSET_COLLECT = nset_col
208 DEALLOCATE (index_sort)
212 DEALLOCATE (index_sort2)
215 ALLOCATE( map_tables%ISUBSM(nsubs,2))
217 ALLOCATE(isort(nsubs))
218 ALLOCATE(index_sort(2*nsubs))
221 isort(i)=subset(i)%ID
224 CALL my_orders(0,iwork,isort,index_sort,nsubs,1)
227 map_tables%ISUBSM(i,1)=isort(index_sort(i))
228 map_tables%ISUBSM(i,2)=index_sort(i)
232 DEALLOCATE (index_sort)
234 ALLOCATE( map_tables%ISUBMM(
nsubmod,2))
237 ALLOCATE(index_sort(2*
nsubmod))
240 isort(i) = lsubmodel(i)%NOSUBMOD
246 map_tables%ISUBMM(i,1)=isort(index_sort(i))
247 map_tables%ISUBMM(i,2)=index_sort(i)
251 DEALLOCATE (index_sort)
253 ALLOCATE( map_tables%IRBODYM(nrbody,2))
255 ALLOCATE(isort(nrbody))
256 ALLOCATE(index_sort(2*nrbody))
265 map_tables%IRBODYM(i,1)=isort(index_sort(i))
266 map_tables%IRBODYM(i,2)=index_sort(i)
270 DEALLOCATE (index_sort)
275 IF(mode==1)
ALLOCATE( map_tables%ISOLM(numels,2))
276 CALL map_order(ixs,nixs,nixs,numels,map_tables%ISOLM)
278 IF(mode==1)
ALLOCATE( map_tables%IQUADM(numelq,2))
279 CALL map_order(ixq,nixq,nixq,numelq,map_tables%IQUADM)
281 IF(mode==1)
ALLOCATE( map_tables%ISH4NM(numelc,2))
282 CALL map_order(ixc,nixc,nixc,numelc,map_tables%ISH4NM)
284 IF(mode==1)
ALLOCATE( map_tables%ISH3NM(numeltg,2))
285 CALL map_order(ixtg,nixtg,nixtg,numeltg,map_tables%ISH3NM)
287 IF(mode==1)
ALLOCATE( map_tables%ITRIAM(numeltg,2))
288 CALL map_order(ixtg,nixtg,nixtg,numeltg,map_tables%ITRIAM)
290 IF(mode==1)
ALLOCATE( map_tables%ITRUSSM(numelt,2))
291 CALL map_order(ixt,nixt,nixt,numelt,map_tables%ITRUSSM)
293 IF(mode==1)
ALLOCATE( map_tables%IBEAMM(numelp,2))
294 CALL map_order(ixp,nixp,nixp,numelp,map_tables%IBEAMM)
296 IF(mode==1)
ALLOCATE( map_tables%ISPRINGM(numelr,2))
297 CALL map_order(ixr,nixr,nixr,numelr,map_tables%ISPRINGM)
299 IF(mode==1)
ALLOCATE( map_tables%ISPHM(numsph,2))
300 map_tables%ISPHM(1:numsph,1:2) = 0
301 CALL map_order(kxsp,nisp,nisp,numsph,map_tables%ISPHM)
305 ALLOCATE( map_tables%IRIVETM(nrivet,2))
306 CALL map_order(lrivet,4,4,nrivet,map_tables%IRIVETM)
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)