36 2 IGAP ,NSNR,MULTIMP,ITY,INTTH ,
37 3 ILEV ,NSNFIOLD,IPARI,NSNROLD ,
38 4 RENUM ,H3D_DATA,INTFRIC,FLAGREMN,
39 5 LREMNORMAX,NRTM,KREMNOD,REMNOD,
40 6 IVIS2,ISTIF_MSDT,IFSUB_CAREA,NODADT_THERM)
50#include "implicit_f.inc"
68 INTEGER RESULT, NIN, NSN, I_STOK, , NSNR, MULTIMP, ITY,
69 . FLAGREMN,LREMNORMAX,NRTM,
70 . CAND_N(*),INTTH,ILEV, INTFRIC, IVIS2,
71 . NSNFIOLD(*), IPARI(NPARI,NINTER), NSNROLD, RENUM(*),
72 . KREMNOD(*), REMNOD(*)
74 INTEGER ,
INTENT(IN) :: ISTIF_MSDT, IFSUB_CAREA
75 INTEGER ,
INTENT(IN) :: NODADT_THERM
80 INTEGER OLDNSNR,NODFI,NNP,LSKYFI,
81 . NOD, LOC_PROC, I, N, NN, P, IDEB, J, K, NI,
82 . IERROR1,IERROR2,IERROR3,IERROR4,IERROR5,IERROR6,IERROR7,
83 . IERROR8,IERROR9,IERROR0,IERROR11,IERROR12,
84 . IERROR13,IERROR14,IERROR15,IERROR16,IERROR17,IERROR18,IERROR19,IERROR20,
85 . ierror21,index(nsnr),nn2,rshift,ishift, ioldnsnfi, nd, jdeb, nsnr_old, q,
86 . kk ,sizremnorfi, ne, ki, km, ll
88 INTEGER,
DIMENSION(:),
ALLOCATABLE :: , IFFI_ADH
90 .
DIMENSION(:),
ALLOCATABLE :: STIFFI_OLD
92 .
DIMENSION(:,:),
ALLOCATABLE :: , SECND_FRFI_OLD
93 INTEGER,
DIMENSION(:),
ALLOCATABLE :: REMNOR_FI_TMP
114 IF((tt==zero.OR.
stifi(nin)%P(ni)>zero).AND.
irtlm_fi(nin)%P(4,ni)==loc_proc)
THEN
164 IF(
ASSOCIATED(
nsvfi(nin)%P))
DEALLOCATE(
nsvfi(nin)%P)
165 ALLOCATE(
nsvfi(nin)%P(nodfi),stat=ierror1)
167 ALLOCATE(
pmainfi(nin)%P(nodfi),stat=ierror2)
168 ierror1 = ierror2 + ierror1
169 IF(
ASSOCIATED(
xfi(nin)%P))
DEALLOCATE(
xfi(nin)%P)
170 ALLOCATE(
xfi(nin)%P(3,nodfi),stat=ierror2)
171 IF(
ASSOCIATED(
vfi(nin)%P))
DEALLOCATE(
vfi(nin)%P)
172 ALLOCATE(
vfi(nin)%P(3,nodfi),stat=ierror3)
173 IF(
ASSOCIATED(
msfi(nin)%P))
DEALLOCATE(
msfi(nin)%P)
174 ALLOCATE(
msfi(nin)%P(nodfi),stat=ierror4)
175 IF(
ASSOCIATED(
stifi(nin)%P))
DEALLOCATE(
stifi(nin)%P)
176 ALLOCATE(
stifi(nin)%P(nodfi),stat=ierror5)
177 IF(
ASSOCIATED(
itafi(nin)%P))
DEALLOCATE(
itafi(nin)%P)
178 ALLOCATE(
itafi(nin)%P(nodfi),stat=ierror6)
179 IF(ity==7.OR.ity==22.OR.ity==23.OR.ity==24.OR.
181 IF(
ASSOCIATED(
kinfi(nin)%P))
DEALLOCATE(
kinfi(nin)%P)
182 ALLOCATE(
kinfi(nin)%P(nodfi),stat=ierror8)
185 ALLOCATE(
tempfi(nin)%P(nodfi),stat
187 ALLOCATE(
matsfi(nin)%P(nodfi),stat=ierror0)
189 ALLOCATE(
areasfi(nin)%P(nodfi),stat=ierror11)
191 IF(intth==0.AND.ivis2==-1)
THEN
193 ALLOCATE(
areasfi(nin)%P(nodfi),stat=ierror11)
197 IF(idtmins == 2)
THEN
199 ALLOCATE(
nodnxfi(nin)%P(nodfi),stat=ierror12)
201 ALLOCATE(
nodamsfi(nin)%P(nodfi),stat=ierror13)
203 ALLOCATE(
procamsfi(nin)%P(nodfi),stat=ierror14)
204 ELSEIF(idtmins_int /= 0)
THEN
206 ALLOCATE(
nodamsfi(nin)%P(nodfi),stat=ierror13)
208 ALLOCATE(
procamsfi(nin)%P(nodfi),stat=ierror14)
211 IF(
ASSOCIATED(
gapfi(nin)%P))
DEALLOCATE(
gapfi(nin)%P)
212 ALLOCATE(
gapfi(nin)%P(nodfi),stat=ierror7)
215 ALLOCATE(
gap_lfi(nin)%P(nodfi),stat=ierror7)
218 IF(istif_msdt > 0)
THEN
222 IF(ifsub_carea > 0)
THEN
224 ALLOCATE(
intareanfi(nin)%P(nodfi),stat=ierror7)
227 nsnr_old=ipari(24,nin)
228 ALLOCATE(secnd_frfi_old(3,nsnr_old),penefi_old(4,nsnr_old),
229 . stiffi_old(nsnr_old),
231 secnd_frfi_old(1:3,1:nsnr_old)=zero
232 penefi_old(1:4,1:nsnr_old) =zero
233 stiffi_old(1:nsnr_old) =zero
237 IF(ity==25.AND.ivis2==-1)
THEN
238 ALLOCATE(iffi_adh(nsnr_old), stat=ierror16)
239 iffi_adh(1:nsnr_old) = 0
243 ALLOCATE(
irtlm_fi(nin)%P(4,nodfi),stat=ierror15)
246 ALLOCATE(
time_sfi(nin)%P(2*nodfi),stat=ierror16)
249 secnd_frfi_old(1:3,1:nsnr_old)=
secnd_frfi(nin)%P(1:3,1:nsnr_old)
252 ALLOCATE(
secnd_frfi(nin)%P(6,nodfi),stat=ierror16)
255 penefi_old(1,1:nsnr_old)=
pene_oldfi(nin)%P(1,1:nsnr_old)
256 penefi_old(2,1:nsnr_old)=
pene_oldfi(nin)%P(5,1:nsnr_old)
257 penefi_old(3,1:nsnr_old)=
pene_oldfi(nin)%P(3,1:nsnr_old)
258 penefi_old(4,1:nsnr_old)=
pene_oldfi(nin)%P(4,1:nsnr_old)
261 ALLOCATE(
pene_oldfi(nin)%P(5,nodfi),stat=ierror16)
264 stiffi_old(1:nsnr_old)=
stif_oldfi(nin)%P(1,1:nsnr_old)
267 ALLOCATE(
stif_oldfi(nin)%P(2,nodfi),stat=ierror16)
271 IF(
ASSOCIATED(
if_adhfi(nin)%P))
THEN
272 iffi_adh(1:nsnr_old)=
if_adhfi(nin)%P(1:nsnr_old)
275 ALLOCATE(
if_adhfi(nin)%P(nodfi),stat=ierror16)
279 ALLOCATE(
icont_i_fi(nin)%P(nodfi),stat=ierror16)
282 ALLOCATE(
iskew_fi(nin)%P(nodfi),stat=ierror17)
285 ALLOCATE(
icodt_fi(nin)%P(nodfi),stat=ierror17)
288 ALLOCATE(
islide_fi(nin)%P(4,nodfi),stat=ierror17)
291 IF(intfric > 0 )
THEN
296 IF(flagremn == 2 )
THEN
298 ALLOCATE(
kremnor_fi(nin)%P(nodfi+1),stat=ierror19)
304 IF(ierror1+ierror2+ierror3+ierror4+ierror5+
305 + ierror6+ierror7+ierror8 + ierror9 + ierror0 +
306 + ierror11+ierror12+ierror13+ierror14+ierror15+
307 + ierror16+ierror17+ierror18+ierror19/= 0)
THEN
308 CALL ancmsg(msgid=20,anmode=aninfo)
317 IF(ivis2==-1)
if_adhfi(nin)%P(1:nodfi) = 0
319 IF(flagremn == 2 )
THEN
320 ALLOCATE(remnor_fi_tmp(nodfi*lremnormax),stat=ierror20)
321 IF(ierror20/= 0)
THEN
322 CALL ancmsg(msgid=20,anmode=aninfo)
336 oldnsnr =
nsnfi(nin)%P(p)
338 ALLOCATE(iaux(oldnsnr),stat=ierror17)
340 CALL ancmsg(msgid=20,anmode=aninfo)
345 IF(
irem(1,i+ideb)<0)
THEN
351#include "vectorize.inc"
354 index(i+ideb) = nn2+j
355 xfi(nin)%P(1,nn2+j) = xrem(1,i+ideb)
356 xfi(nin)%P(2,nn2+j) = xrem(2,i+ideb)
357 xfi(nin)%P(3,nn2+j) = xrem(3,i+ideb)
358 vfi(nin)%P(1,nn2+j) = xrem(4,i+ideb)
359 vfi(nin)%P(2,nn2+j) = xrem(5,i+ideb)
360 vfi(nin)%P(3,nn2+j) = xrem(6,i+ideb)
361 msfi(nin)%P(nn2+j) = xrem(7,i+ideb
362 stifi(nin)%P(nn2+j) = xrem(8,i+ideb)
380#include "vectorize.inc"
390 IF(igap==1 .OR. igap==2)
THEN
391#include "vectorize.inc"
394 gapfi(nin)%P(nn2+j) = xrem(rshift,i+ideb)
399#include "vectorize.inc"
402 gapfi(nin)%P(nn2+j) = xrem(rshift,i+ideb)
403 gap_lfi(nin)%P(nn2+j) = xrem(rshift+1,i+ideb)
410#include "vectorize.inc"
413 tempfi(nin)%P(nn2+j) = xrem(rshift,i+ideb)
414 areasfi(nin)%P(nn2+j) = xrem(rshift+1,i+ideb)
424 jdeb = jdeb + nsnfiold(q)
427#include "vectorize.inc"
430 IF(intth==0)
areasfi(nin)%P(nn2+j) = xrem(rshift,i+ideb)
432 ioldnsnfi =
irem(ishift+1,i+ideb)
435#include "vectorize.inc"
438 IF(intth==0)
areasfi(nin)%P(nn2+j) = xrem(rshift,i+ideb)
439 ioldnsnfi =
irem(ishift+1,i+ideb)
440 IF(ioldnsnfi /= 0)
THEN
441 if_adhfi(nin)%P(nn2+j)=iffi_adh(ioldnsnfi+jdeb)
447 IF(intth==0) rshift = rshift + 1
453#include "vectorize.inc"
463 IF(istif_msdt > 0)
THEN
464#include "vectorize.inc"
474 IF(ifsub_carea > 0)
THEN
475#include "vectorize.inc"
478 intareanfi(nin)%P(nn2+j) = xrem(rshift,i+ideb)
485#include "vectorize.inc"
494 ELSEIF(idtmins_int/=0)
THEN
495#include "vectorize.inc"
506 jdeb = jdeb + nsnfiold(q)
510#include "vectorize.inc"
519 time_sfi(nin)%P(2*(nn2+j-1)+1) =xrem(rshift,i+ideb)
520 time_sfi(nin)%P(2*(nn2+j-1)+2) =xrem(rshift+1,i+ideb)
521 pene_oldfi(nin)%P(5,nn2+j) =xrem(rshift+2,i+ideb)
524 IF(ioldnsnfi /= 0)
THEN
525 secnd_frfi(nin)%P(1,nn2+j) =secnd_frfi_old(1,ioldnsnfi+jdeb)
526 secnd_frfi(nin)%P(2,nn2+j) =secnd_frfi_old(2,ioldnsnfi+jdeb)
527 secnd_frfi(nin)%P(3,nn2+j) =secnd_frfi_old(3,ioldnsnfi+jdeb)
528 pene_oldfi(nin)%P(1,nn2+j)=penefi_old(1,ioldnsnfi+jdeb)
529 stif_oldfi(nin)%P(1,nn2+j)=stiffi_old(ioldnsnfi+jdeb)
541#include "vectorize.inc"
550 time_sfi(nin)%P(2*(nn2+j-1)+1) =xrem(rshift,i+ideb)
551 time_sfi(nin)%P(2*(nn2+j-1)+2) =xrem(rshift+1,i+ideb)
552 ioldnsnfi =
irem(ishift+5,i+ideb)
554 IF(ioldnsnfi /= 0)
THEN
555 secnd_frfi(nin)%P(1,nn2+j) =secnd_frfi_old(1,ioldnsnfi+jdeb)
556 secnd_frfi(nin)%P(2,nn2+j) =secnd_frfi_old(2,ioldnsnfi+jdeb)
557 secnd_frfi(nin)%P(3,nn2+j) =secnd_frfi_old(3,ioldnsnfi+jdeb)
558 pene_oldfi(nin)%P(1,nn2+j)=penefi_old(1,ioldnsnfi+jdeb)
559 stif_oldfi(nin)%P(1,nn2+j)=stiffi_old(ioldnsnfi+jdeb)
560 pene_oldfi(nin)%P(5,nn2+j)=penefi_old(2,ioldnsnfi+jdeb)
561 pene_oldfi(nin)%P(3,nn2+j)=penefi_old(3,ioldnsnfi+jdeb)
562 pene_oldfi(nin)%P(4,nn2+j)=penefi_old(4,ioldnsnfi+jdeb)
579 IF (ilev==2) ishift = ishift + 1
582 ideb = ideb + oldnsnr
583 nsnfi(nin)%P(p) = nn2-nnp
589 lskyfi = nn2*multimax
595 IF(flagremn == 2 )
THEN
599 kk = kremnod(2*(ne-1)+2) + 1
600 ll = kremnod(2*(ne-1)+3)
602 IF(remnod(km) == -
itafi(nin)%P(n) )
THEN
605 remnor_fi_tmp(ki) = ne
619 ALLOCATE(
remnor_fi(nin)%P(sizremnorfi),stat=ierror21
620 IF(sizremnorfi /= 0)
THEN
621 IF(ierror21/= 0)
THEN
622 CALL ancmsg(msgid=20,anmode=aninfo)
625#include "vectorize.inc"
630 DEALLOCATE(remnor_fi_tmp)
633 IF(
ALLOCATED(xrem))
DEALLOCATE(xrem)
634 IF(
ALLOCATED(
irem))
DEALLOCATE(
irem)
637 DEALLOCATE(secnd_frfi_old,penefi_old,stiffi_old)
638 IF(ivis2==-1)
DEALLOCATE(iffi_adh)
652 IF(
ASSOCIATED(
afi(nin)%P))
THEN
653 DEALLOCATE(
afi(nin)%P)
656 IF(
ASSOCIATED(
stnfi(nin)%P))
THEN
657 DEALLOCATE(
stnfi(nin)%P)
661 IF(nodfi>0)
ALLOCATE(
afi(nin)%P(3,nodfi*nthread),stat=ierror1)
662 IF(nodfi>0)
ALLOCATE(
stnfi(nin)%P(nodfi*nthread),stat=ierror2)
664 DO i = 1, nodfi*nthread
665 afi(nin)%P(1,i) = zero
666 afi(nin)%P(2,i) = zero
667 afi(nin)%P(3,i) = zero
668 stnfi(nin)%P(i) = zero
672 IF(
ASSOCIATED(
vscfi(nin)%P))
DEALLOCATE(
vscfi(nin)%P)
673 IF(nodfi>0)
ALLOCATE(
vscfi(nin)%P(nodfi*nthread),stat=ierror3)
675 DO i = 1, nodfi*nthread
676 vscfi(nin)%P(i) = zero
691 IF(
ASSOCIATEDDEALLOCATE
692 IF(
ASSOCIATED(
stnfi(nin)%P))
DEALLOCATE(
stnfi(nin)%P)
695 IF(nodfi>0)
ALLOCATE(
stnfi(nin)%P(nodfi*nthread),stat=ierror2)
696 IF(nodfi>0)
ALLOCATE(
fthefi(nin)%P(nodfi
698 IF(nodadt_therm ==1)
THEN
700 IF(nodfi>0.AND.nodadt_therm ==1)
ALLOCATE(
condnfi(nin)%P(nodfi*nthread),stat
703 DO i = 1, nodfi*nthread
704 afi(nin)%P(1,i) = zero
705 afi(nin)%P(2,i) = zero
706 afi(nin)%P(3,i) = zero
707 stnfi(nin)%P(i) = zero
710 IF(nodadt_therm ==1)
THEN
717 IF(
ASSOCIATED(
vscfi(nin)%P))
DEALLOCATE(
vscfi(nin)%P)
718 IF(nodfi>0)
ALLOCATE(
vscfi(nin)%P(nodfi),stat=ierror4)
721 vscfi(nin)%P(i) = zero
734 IF(ierror1+ierror2+ierror3+ierror4/=0)
THEN
735 CALL ancmsg(msgid=20,anmode=aninfo)
741 IF(anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT >0)
THEN
744 ALLOCATE(
fnconti(nin)%P(3,nodfi),stat=ierror1)
745 ALLOCATE(
ftconti(nin)%P(3,nodfi),stat=ierror2)
746 IF(ierror1+ierror2/=0)
THEN
747 CALL ancmsg(msgid=20,anmode=aninfo)
761 IF(h3d_data%N_SCAL_CSE_FRICINT >0)
THEN
762 IF(h3d_data%N_CSE_FRIC_INTER (nin) >0)
THEN
764 ALLOCATE(
efricfi(nin)%P(nodfi),stat=ierror1)
766 CALL ancmsg(msgid=20,anmode=aninfo)
776 IF(h3d_data%N_SCAL_CSE_FRIC >0)
THEN
778 ALLOCATE(
efricgfi(nin)%P(nodfi),stat=ierror1)
780 CALL ancmsg(msgid=20,anmode=aninfo)
795 cand_n(i) = index(nn)+nsn