34
35
36
41
42
43
44#include "implicit_f.inc"
45
46
47
48#include "com01_c.inc"
49#include "com04_c.inc"
50#include "param_c.inc"
51#include "scr17_c.inc"
52
53
54
55 INTEGER, DIMENSION(NPARG,NGROUP) ,INTENT(IN):: IPARG
56 INTEGER, DIMENSION(LIPART1,NPART),INTENT(IN):: IPART
57 INTEGER ,DIMENSION(NUMELS),INTENT(IN):: IPARTS
58 INTEGER ,DIMENSION(NUMELC),INTENT(IN):: IPARTC
59 INTEGER ,DIMENSION(NUMELTG),INTENT(IN):: IPARTG
60 TYPE(H3D_DATABASE) :: H3D_DATA
61
62
63
64 INTEGER I, , K, N ,NELC , NELTG , IP , NPRT , IPRT
65 INTEGER IH3D,,ITY,NFT,IKEY,K_LEN,ID_INPUT,ID,NH3D_P
66
67 INTEGER :: NKPART(NPART,3),NOPART(3)
68 CHARACTER(LEN=NCHARKEY) :: KEY2
69 CHARACTER(LEN=NCHARKEY) :: KEY3
70 CHARACTER(LEN=NCHARKEY) :: KEY4
71 CHARACTER(LEN=NCHARKEY) :: KEY5
72
73
74
75
84 nkpart(1:npart,1:3) = 0
85 nopart(1:3) = 1
86 DO id_input=1,h3d_data%N_INPUT_H3D
87
88 key2 = h3d_data%INPUT_LIST(id_input)%KEY2
89 key3 = h3d_data%INPUT_LIST(id_input)%KEY3
90 key4 = h3d_data%INPUT_LIST(id_input)%KEY4
91 key5 = h3d_data%INPUT_LIST(id_input)%KEY5
92 IF ( key2=='PART' ) THEN
95 ELSEIF ( key3=='GPS'.AND. key4=='TMAX') THEN
98 IF (key5/=
' ')
READ (key5(3:12),
'(I10)',err=100)
ncy_gps
99 ELSEIF ( key3=='GPSTRAIN'.AND. key4=='TMAX') THEN
102 IF (key5/=
' ')
READ (key5(3:12),
'(I10)',err=100)
ncy_gpstr
103 ELSE
105 END IF
107 nh3d_p = h3d_data%INPUT_LIST(id_input)%NB_PART
108 IF (nh3d_p==0) THEN
109 nkpart(1:npart,
id) = 1
110 ELSE
111 DO j=1,nh3d_p
112 ip = h3d_data%INPUT_LIST(id_input)%PART_LIST(j)
113 DO k=1,npart
114 IF(ip == ipart(4,k)) nkpart(k,
id)=1
115 END DO
116 END DO
117 END IF
118 END IF
119 END DO
120
122 IF ( nopart(
id)>0 ) nkpart(1:npart,
id)=1
123 END DO
125 nkpart(1:npart,
id)=nkpart(1:npart,3)*nkpart(1:npart,
id)
126 END DO
127 DO ng=1,ngroup
128 IF (iparg(8,ng)==1) cycle
129 nft=iparg(3,ng)+1
130 ity=iparg(5,ng)
131
132 iprt = 0
133 SELECT CASE (ity)
134 CASE(1)
135 iprt = iparts(nft)
136 CASE(3)
137 iprt = ipartc(nft)
138 CASE(7)
139 iprt
140 END SELECT
141 IF(iprt>0)
ipart_ok(ng,1:2) = nkpart(iprt,1:2)
142 END DO
143 END IF
144
145 RETURN
146100
CALL ancmsg(msgid=277,c1=key2//
'/'//key3//
'/'//key4//
'/'//key5,anmode=aninfo)
integer, parameter ncharkey
integer, dimension(:), allocatable igpstratag
integer, dimension(:,:), allocatable ipart_ok
integer, dimension(:), allocatable igpstag
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)