31 2 A ,AR ,ITASK ,NODFT ,
32 3 NODLT ,STIFN ,STIFR ,ITAB ,FSKY ,
33 4 FSKYV ,ISKY ,INDSKY ,FSKYI ,
34 5 ADSKYI ,PARTFT ,PARTLT ,PARTSAV ,MS ,
35 6 FTHE ,FTHESKY ,FTHESKYI ,GREFT ,GRELT ,
36 7 GRESAV ,ITHERM_FE ,INTHEAT )
41#include "implicit_f.inc"
54 parameter (maxbloc=1000)
55 common/tmparit/nbloc,adbloc(0:maxbloc),nbcol(0:maxbloc),
56 . nbdone(maxbloc),ideb(parasiz),ifin(parasiz)
57 integer nbloc,adbloc,nbcol,nbdone,ideb,ifin
61 INTEGER ,
INTENT(IN) :: ITHERM_FE
62 INTEGER ,
INTENT(IN) :: INTHEAT
65 . a(3,*) ,ar(3,*), stifn(*), stifr(*),fskyv(lsky,8),
66 . fskyi(lskyi,4),partsav(*),fsky(8,lsky), ms(*),
67 . fthe(*), fthesky(*),ftheskyi(lskyi),gresav(*)
68 INTEGER ITASK,NODFT,NODLT,PARTFT,PARTLT,GREFT,GRELT
69 INTEGER ISKY(*),INDSKY(0:*),ADSKYI(0:*),ITAB(*)
73 INTEGER I,J,K,L,N,KK,JJ1,JJ2,NN,KM,NUM7,LL,
74 . niskyft,niskylt, ldone,idone,nc,
nl,ift,ilt,kft,klt,
77 . ff, fskyt(nisky), ftheskyt(nisky)
78 COMMON /assp2/ ldone, idone, ibar
80 IF(nthread*nisky+numnod+2>lenwa)
THEN
81 WRITE(iout,*)
' **ERROR** : MEMORY PROBLEM IN PARITH OPTION'
82 WRITE(istdo,*)
' **ERROR** : MEMORY PROBLEM IN PARITH OPTION'
87 WRITE(iout,*)
' **ERROR** : MEMORY PROBLEM IN PARITH OPTION'
88 WRITE(istdo,*)
' **ERROR** : MEMORY PROBLEM IN PARITH OPTION'
92 niskyft = 1+itask*nisky/ nthread
93 niskylt = (itask+1)*nisky/nthread
113#include "lockoff.inc"
116#include "lockoff.inc"
120 adskyi(n) = adskyi(n) + 1
129 adskyi(nn) = adskyi(nn) + adskyi(n)
138 adskyi(n) = adskyi(n) + 1
143#include "lockoff.inc"
151 DO n = ideb(itask+1), ifin(itask+1)
153 nc = indsky(n+1)-indsky(n)
154 IF(itherm_fe == 0 )
THEN
155 DO k = nct+1, nct+nc-1
158 IF(fsky(ll,kk)<fsky(ll,k))
THEN
160 fsky(ll,kk) = fsky(ll,k)
167 DO k = nct+1, nct+nc-1
170 IF(fsky(ll,kk)<fsky(ll,k))
THEN
172 fsky(ll,kk) = fsky(ll,k)
176 IF(fthesky(kk)<fthesky(k))
THEN
178 fthesky(kk) = fthesky(k)
185 IF(itherm_fe == 0 )
THEN
187 a(1,n) = a(1,n) +
max(zero,fsky(1,k))
188 a(2,n) = a(2,n) +
max(zero,fsky(2,k))
189 a(3,n) = a(3,n) +
max(zero,fsky(3,k))
190 ar(1,n) = ar(1,n) +
max(zero,fsky(4,k))
191 ar(2,n) = ar(2,n) +
max(zero,fsky(5,k))
192 ar(3,n) = ar(3,n) +
max(zero,fsky(6,k))
193 stifn(n) = stifn(n) +
max(zero,fsky(7,k))
194 stifr(n) = stifr(n) +
max(zero,fsky(8,k))
196 DO k=nct+nc, nct+1,-1
197 a(1,n) = a(1,n) +
min(zero,fsky(1,k))
198 a(2,n) = a(2,n) +
min(zero,fsky(2,k))
199 a(3,n) = a(3,n) +
min(zero,fsky(3,k))
200 ar(1,n) = ar(1,n) +
min(zero,fsky(4,k))
201 ar(2,n) = ar(2,n) +
min(zero,fsky(5,k))
202 ar(3,n) = ar(3,n) +
min(zero,fsky(6,k))
206 a(1,n) = a(1,n) +
max(zero,fsky(1,k))
207 a(2,n) = a(2,n) +
max(zero,fsky(2,k))
208 a(3,n) = a(3,n) +
max(zero,fsky(3,k))
209 ar(1,n) = ar(1,n) +
max(zero,fsky(4,k))
210 ar(2,n) = ar(2,n) +
max(zero,fsky(5,k))
211 ar(3,n) = ar(3,n) +
max(zero,fsky(6,k))
212 stifn(n) = stifn(n) +
max(zero,fsky(7,k))
213 stifr(n) = stifr(n) +
max(zero,fsky(8,k))
214 fthe(n) = fthe(n) +
max(zero,fthesky(k))
216 DO k=nct+nc, nct+1,-1
217 a(1,n) = a(1,n) +
min(zero,fsky(1,k))
218 a(2,n) = a(2,n) +
min(zero,fsky(2,k))
219 a(3,n) = a(3,n) +
min(zero,fsky(3,k))
220 ar(1,n) = ar(1,n) +
min(zero,fsky(4,k))
221 ar(2,n) = ar(2,n) +
min(zero,fsky(5,k))
222 ar(3,n) = ar(3,n) +
min(zero,fsky(6,k))
223 fthe(n) = fthe(n) +
min(zero,fthesky(k))
245#include "lockoff.inc"
251#include "lockoff.inc"
254#include "lockoff.inc"
257 fskyt(j) = fskyi(i,l)
260 fskyi(i,l) = fskyt(i)
263 IF(intheat > 0 .AND. l == 1)
THEN
266 ftheskyt(j) = ftheskyi(i)
269 ftheskyi(i) = ftheskyt(i)
293 IF(intheat == 0)
THEN
297 IF(fskyi(kk,ll)<fskyi(k,ll))
THEN
299 fskyi(kk,ll) = fskyi(k,ll)
308 IF(fskyi(kk,ll)<fskyi(k,ll))
THEN
310 fskyi(kk,ll) = fskyi(k,ll)
314 IF(ftheskyi(kk) < ftheskyi(k))
THEN
316 ftheskyi(kk) = ftheskyi(k)
325 IF(intheat == 0 )
THEN
327 a(1,n) = a(1,n) +
max(zero,fskyi(k,1))
328 a(2,n) = a(2,n) +
max(zero,fskyi(k,2))
329 a(3,n) = a(3,n) +
max(zero,fskyi(k,3))
330 stifn(n) = stifn(n) + fskyi(k,4)
333 a(1,n) = a(1,n) +
min(zero,fskyi(k,1))
334 a(2,n) = a(2,n) +
min(zero,fskyi(k,2))
335 a(3,n) = a(3,n) +
min(zero,fskyi(k,3))
340 a(1,n) = a(1,n) +
max(zero,fskyi(k,1))
341 a(2,n) = a(2,n) +
max(zero,fskyi(k,2))
342 a(3,n) = a(3,n) +
max(zero,fskyi(k,3))
343 stifn(n) = stifn(n) + fskyi(k,4)
344 fthe(n) = fthe(n) +
max(zero,ftheskyi(k))
347 a(1,n) = a(1,n) +
min(zero,fskyi(k,1))
348 a(2,n) = a(2,n) +
min(zero,fskyi(k,2))
349 a(3,n) = a(3,n) +
min(zero,fskyi(k,3))
350 fthe(n) = fthe(n) +
min(zero,ftheskyi(k))
362 DO 940 i=partft,partlt
363 partsav(i) = partsav(i) + partsav(i+km)
373 IF (nthpart > 0)
THEN
376#include "vectorize.inc"
378 gresav(i) = gresav(i) + gresav(i+km)
subroutine asspar3(a, ar, itask, nodft, nodlt, stifn, stifr, itab, fsky, fskyv, isky, indsky, fskyi, adskyi, partft, partlt, partsav, ms, fthe, fthesky, ftheskyi, greft, grelt, gresav, itherm_fe, intheat)