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, J,I_ADD, IP0, IP1, MAXSIZ,
79 . ADD(2,I_ADD_MAX), LOC_PROC, N,
80 . NSNFIOLD(NSPMD)
81
83 . xyzm(6,i_add_max-1),marge
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101 maxsiz = 3*(nrtm+100)
102 ip0 = 1
103 ip1 = ip0 + nsn + nsnrold + 3
104
105
106
107
108
109
110
111
112 add(1,1) = 0
113 add(2,1) = 0
114 add(1,2) = 0
115 add(2,2) = 0
116 i_add = 1
117 xyzm(1,i_add) = bminma(4)
118 xyzm(2,i_add) = bminma(5)
119 xyzm(3,i_add) = bminma(6)
120 xyzm(4,i_add) = bminma(1)
121 xyzm(5,i_add) = bminma(2)
122 xyzm(6,i_add) = bminma(3)
123 i_mem = 0
124
125
126
127
128
129 marge = tzinf-gap
131 1 add ,nsn ,renum ,nsnr ,nrtm ,
132 2 irect ,x ,xyzm ,igap ,gap ,
133 3 i_add ,nsv ,maxsiz ,ii_stok ,cand_n ,
134 4 cand_e ,ncontact,noint ,tzinf ,maxbox ,
135 5 minbox ,i_mem ,nb_n_b ,i_add_max,mwag(ip0),
136 6 eshift ,nsnrold ,stf ,stfn ,gap_s ,
137 7 gap_m ,gapmin ,gapmax ,marge ,nin ,
138 8 intheat, idt_therm, nodadt_therm)
139
140
141
142
143 IF (i_mem == 2) RETURN
144 IF(i_mem==1)THEN
145 nb_n_b = nb_n_b + 1
146 IF ( nb_n_b > ncont) THEN
147 CALL ancmsg(msgid=85,anmode=aninfo,
148 . i1=noint)
150 ENDIF
151 ild = 1
152 ELSEIF(i_mem==2) THEN
153 IF(debug(1)>=1) THEN
154 iwarn = iwarn+1
155#include "lockon.inc"
156 WRITE(istdo,*)' **WARNING INTERFACE/MEMORY'
157 WRITE(iout,*)' **WARNING INTERFACE NB:',noint
158 WRITE(iout,*)' TOO MANY POSSIBLE IMPACTS'
159 WRITE(iout,*)' SIZE OF INFLUENCE ZONE IS'
160 WRITE(iout,*)' MULTIPLIED BY 0.75'
161#include "lockoff.inc"
162 ENDIF
163 tzinf = three_over_4*tzinf
164
165
166
167 IF( tzinf<=gap ) THEN
168 CALL ancmsg(msgid=85,anmode=aninfo,
169 . i1=noint)
171 ENDIF
172 ild = 1
173 ELSEIF(i_mem==3)THEN
174 nb_n_b = nb_n_b + 1
175 IF ( nb_n_b > ncont) THEN
176 CALL ancmsg(msgid=90,anmode=aninfo,
177 . i1=noint)
179 ENDIF
180 ild = 1
181 ENDIF
182
183 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)