42
43
44
45
47
48
49
50#include "implicit_f.inc"
51#include "comlock.inc"
52
53
54
55#include "units_c.inc"
56#include "warn_c.inc"
57#include "com01_c.inc"
58
59
60
61 INTEGER NMN, NRTM, NSN, NOINT, NIN, IGAP, NSNR, NSNROLD
62 INTEGER IRECT(4,*),NSV(*),MWAG(*)
63 INTEGER CAND_E(*),CAND_N(*),RENUM(*)
64 INTEGER ILD,NB_N_B,ESHIFT,NCONTACT,NCONT,I_MEM,II_STOK
65 INTEGER ,INTENT(IN) :: INTHEAT
66 INTEGER, INTENT(IN) :: IDT_THERM
67 INTEGER, INTENT(IN) :: NODADT_THERM
68
70 . gap,tzinf,maxbox,minbox,gapmin, gapmax, bminma(6)
72 . x(3,*),stfn(*), gap_s(*), stf(*), gap_m(*)
73
74
75
76 INTEGER I_ADD_MAX
77 parameter(i_add_max = 1001)
78 INTEGER I_ADD, IP0, IP1, MAXSIZ,
79 . ADD(2,I_ADD_MAX)
80
82 . xyzm(6,i_add_max-1),marge
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100 maxsiz = 3*(nrtm+100)
101 ip0 = 1
102 ip1 = ip0 + nsn + nsnrold + 3
103
104
105
106
107
108
109
110
111 add(1,1) = 0
112 add(2,1) = 0
113 add(1,2) = 0
114 add(2,2) = 0
115 i_add = 1
116 xyzm(1,i_add) = bminma(4)
117 xyzm(2,i_add) = bminma(5)
118 xyzm(3,i_add) = bminma(6)
119 xyzm(4,i_add) = bminma(1)
120 xyzm(5,i_add) = bminma(2)
121 xyzm(6,i_add) = bminma(3)
122 i_mem = 0
123
124
125
126
127
128 marge = tzinf-gap
130 1 add ,nsn ,renum ,nsnr ,nrtm ,
131 2 irect ,x ,xyzm ,igap ,gap ,
132 3 i_add ,nsv ,maxsiz ,ii_stok ,cand_n ,
133 4 cand_e ,ncontact,noint ,tzinf ,maxbox ,
134 5 minbox ,i_mem ,nb_n_b ,i_add_max,mwag(ip0),
135 6 eshift ,nsnrold ,stf ,stfn ,gap_s ,
136 7 gap_m ,gapmin ,gapmax ,marge ,nin ,
137 8 intheat, idt_therm, nodadt_therm)
138
139
140
141
142 IF (i_mem == 2) RETURN
143 IF(i_mem==1)THEN
144 nb_n_b = nb_n_b + 1
145 IF ( nb_n_b > ncont) THEN
146 CALL ancmsg(msgid=85,anmode=aninfo,
147 . i1=noint)
149 ENDIF
150 ild = 1
151 ELSEIF(i_mem==2) THEN
152 IF(debug(1)>=1) THEN
153 iwarn = iwarn+1
154#include "lockon.inc"
155 WRITE(istdo,*)' **WARNING INTERFACE/MEMORY'
156 WRITE(iout,*)' **WARNING INTERFACE NB:',noint
157 WRITE(iout,*)' TOO MANY POSSIBLE IMPACTS'
158 WRITE(iout,*)' SIZE OF INFLUENCE ZONE IS'
159 WRITE(iout,*)' MULTIPLIED BY 0.75'
160#include "lockoff.inc"
161 ENDIF
162 tzinf = three_over_4*tzinf
163
164
165
166 IF( tzinf<=gap ) THEN
167 CALL ancmsg(msgid=85,anmode=aninfo,
168 . i1=noint)
170 ENDIF
171 ild = 1
172 ELSEIF(i_mem==3)THEN
173 nb_n_b = nb_n_b + 1
174 IF ( nb_n_b > ncont) THEN
175 CALL ancmsg(msgid=90,anmode=aninfo,
176 . i1=noint)
178 ENDIF
179 ild = 1
180 ENDIF
181
182 RETURN
subroutine i10tri(add, nsn, renum, nsnr, nrtm, irect, x, xyzm, igap, gap, i_add, nsv, maxsiz, ii_stok, cand_n, cand_e, nsn4, noint, tzinf, maxbox, minbox, i_mem, nb_n_b, i_add_max, cand_a, eshift, nsnrold, stf, stfn, gap_s, gap_m, gapmin, gapmax, marge, nin, intheat, idt_therm, nodadt_therm)
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)