31
32
33
34 USE elbufdef_mod
35
36
37
38#include "implicit_f.inc"
39
40
41
42#include "com01_c.inc"
43#include "com04_c.inc"
44#include "param_c.inc"
45
46
47
48 INTEGER IPARG(NPARG,*),EL2FA(*),NBF,IOFF(*)
49 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_TAB
50
51
52
53
54 INTEGER I, NG, NEL, NFT, ITY, LFT,LLT, MLW,
55 . N1,N2,N3,N4,NN1,NN2,NN3,NN4,NN5,NN6,NN7,NN8,NN9,N_FA
56 REAL R4
58 . off
59 TYPE(G_BUFEL_) ,POINTER :: GBUF
60
61 nn1 = 1
62 nn2 = 1
63 nn3 = 1
64 nn4 = nn3 + numelq
65 nn5 = nn4 + numelc
66 nn6 = nn5 + numeltg
67 nn7 = nn6
68 nn8 = nn7
69 nn9 = nn8
70
71
72 DO ng=1,ngroup
73 mlw = iparg(1,ng)
74 nel = iparg(2,ng)
75 nft = iparg(3,ng)
76 ity = iparg(5,ng)
77 lft=1
78 llt=nel
79
80
81
82 IF(ity==2)THEN
83 n_fa = nn3 + nft
84
85
86
87 ELSEIF(ity==3)THEN
88 n_fa = nn4 + nft
89
90
91
92 ELSEIF(ity==7)THEN
93 n_fa = nn5 + nft
94
95
96
97 ELSEIF(ity==50)THEN
98 n_fa = nn9 + nft
99 ELSE
100 ity=0
101 ENDIF
102
103 IF(ity/=0)THEN
104 IF(mlw==0)THEN
105
106
107
108 DO i=lft,llt
109 ioff(el2fa(n_fa+i)) = 0
110 ENDDO
111 ELSE
112
113
114
115 gbuf => elbuf_tab(ng)%GBUF
116 DO i=lft,llt
117 off = huge(off)
118 IF (mlw/=0 .AND. mlw/=13) off = elbuf_tab(ng)%GBUF%OFF(i)
119 ioff(el2fa(n_fa+i)) = nint(
min(off,one))
120 ENDDO
121 ENDIF
122 ENDIF
123
124 ENDDO
125
127
128 RETURN
void write_c_c(int *w, int *len)