coml10
C COML10 SOURCE CB215821 20/11/25 13:21:49 10792 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCGEOME -INC CCHAMP * segment deroulant le mcheml -INC DECHE -INC SMCHPOI -INC SMELEME -INC SMLENTI -INC SMLREEL *------------------------------------------------------------- * CF DEVPAS et autres s-p de DYNE ** calcul des vitesses correct pour dernière liaison (JLIAIB.eq.NLIADY) *------------------------------------------------------------- ** segment sous-structures dynamiques segment struli integer itlia,itbmod,momoda, mostat,itmail,molia integer ldefo(np1),lcgra(np1),lsstru(np1) integer nsstru,nndefo,nliab,nsb,na2,idimb integer ktliab,ktphi,ktq,ktres,kpref,ktkam,kcpr,ktpas INTEGER NIPALB,NXPALB,NPLBB,NPLB,NIP,jliaib * ichain segment MLENTI initialise dans dyne12 (tjs actif si > 0) INTEGER ICHAIN endsegment * * Segment contenant les variables au cours d'un pas de temps: * SEGMENT,MTPAS REAL*8 FTOTA(NA1,4),FTOTB(NPLB,IDIMB),FTOTBA(NA1) REAL*8 XPTB(NPLB,2,IDIMB),FINERT(NA1,4) REAL*8 XVALA(NLIAA,4,NTVAR),XVALB(NLIAB,4,NTVAR) REAL*8 FEXB(NPLB,2,IDIM),XCHPFB(2,NLIAB,4,NPLB) ENDSEGMENT * SEGMENT,MTKAM REAL*8 XK(NA1,NB1K),XASM(NA1,NB1C),XM(NA1,NB1M) REAL*8 XOPER(NB1,NB1,NOPER) ENDSEGMENT * SEGMENT,MTQ REAL*8 Q1(NA1,4),Q2(NA1,4),Q3(NA1,4) REAL*8 WEXT(NA1,2),WINT(NA1,2) ENDSEGMENT * SEGMENT MTLIAB INTEGER IPALB(NLIAB,NIPALB),IPLIB(NLIAB,NPLBB),JPLIB(NPLB) REAL*8 XPALB(NLIAB,NXPALB) REAL*8 XABSCI(NLIAB,NIP),XORDON(NLIAB,NIP) ENDSEGMENT * SEGMENT,MTLIAA INTEGER IPALA(NLIAA,NIPALA),IPLIA(NLIAA,NPLAA),JPLIA(NPLA) REAL*8 XPALA(NLIAA,NXPALA) ENDSEGMENT * SEGMENT,MTPHI INTEGER IBASB(NPLB),IPLSB(NPLB),INMSB(NSB),IORSB(NSB) INTEGER IAROTA(NSB) REAL*8 XPHILB(NSB,NPLSB,NA2,IDIMB) ENDSEGMENT SEGMENT,MTRES REAL*8 XRES(NRES,NCRES,NPRES),XREP(NREP,NCRES) REAL*8 XRESLA(NLSA,NPRES,NVALA),XRESLB(NLSB,NPRES,NVALB) REAL*8 XMREP(NLIAB,4,IDIMB) INTEGER ICHRES(NVES),IPORES(NRESPO,NPRES),IPOREP(NREP) INTEGER ILIRES(NRESLI,NCRES) INTEGER IPOLA(NLSA),INULA(NLSA),IPLRLA(NLSA,NVALA) INTEGER IPOLB(NLSB),INULB(NLSB),IPLRLB(NLSB,NVALB) INTEGER ILIREA(NLSA,NTVAR),ILIREB(NLSB,NTVAR) INTEGER ILIRNA(NLSA,NTVAR),ILIRNB(NLSB,NTVAR) INTEGER IPOLR(1),IMREP(NLIAB,2),IPPREP(NLIAB,4) INTEGER ILPOLA(NLIAA,2) ENDSEGMENT SEGMENT,MPREF INTEGER IPOREF(NPREF) ENDSEGMENT * SEGMENT,MTFEX REAL*8 FEXA(NPFEXA,NPC1,2) REAL*8 FEXPSM(NPLB,NPC1,2,IDIMB) REAL*8 FTEXB(NPLB,NPC1,2,IDIM) * INTEGER IFEXA(NPFEXA),IFEXB(NPFEXB) ENDSEGMENT SEGMENT,MTNUM REAL*8 XDT(NPC1),XTEMPS(NPC1) ENDSEGMENT c Segment "local" pour DEVLFA ... SEGMENT,LOCLFA REAL*8 FTEST(NA1,4) ENDSEGMENT * Segment "local" pour DEVLB1 ... SEGMENT,LOCLB1 REAL*8 FTEST2(NPLB,6) ENDSEGMENT * Segment pour Champoints SEGMENT,MSAM integer jplibb(NPLB) ENDSEGMENT * SEGMENT,ICPR(nbpts) * LOGICAL RIGIDE,REPRIS,LMODYN * IERRD = 0 struli = itruli lmodyn = .true. MTKAM = ktkam MPREF = KPREF NPREF = iporef(/1) rigide = .false. * npc1 = 1 plante dans devso4 : pv npc1 = 2 SEGINI,MTNUM KTNUM = MTNUM xdt(1) = tempf - temp0 xtemps(1) = temp0 IF (var0(3).gt.0.and.var0(4).gt.0) THEN *--------------------------------------------------------------------* * suite d un calcul avec variables internes de preconditionnement * VAEN , VARE, pour modeles liaisons herites de DYNE de_vogelaere *--------------------------------------------------------------------* * its2 = int(var0(2)) mlreel = int(var0(4)) segact mlreel mlenti = int(var0(3)) segact mlenti itmail = int(var0(5)) jjr = 0 jje = 0 jje = jje + 1 JLIAIB = lect(jje) jje = jje + 1 nchain = lect(jje) if (ichain.eq.0) then jg = nchain segini,mlent3 ichain = mlent3 else mlent3 = ichain jg = mlent3.lect(/1) if (nchain.ne.jg) then write(6,*) 'pb developpement coml10' ierr = 2 return endif endif do lg = 1,nchain jje = jje + 1 if (JLIAIB.eq.1) mlent3.lect(lg)= lect(jje) enddo jje = jje + 1 NPAS = lect(jje) jje = jje + 1 NIPALB = lect(jje) jje = jje + 1 NXPALB = lect(jje) jje = jje + 1 NPLBB = lect(jje) jje = jje + 1 NPLB = lect(jje) jje = jje + 1 NPLSB = lect(jje) jje = jje + 1 NIP = lect(jje) jje = jje + 1 nsstru = lect(jje) jje = jje + 1 nndefo = lect(jje) MTQ = KTQ NA1 = q1(/1) jje = jje + 1 nliab = lect(jje) jje = jje + 1 nsb = lect(jje) jje = jje + 1 na2 = lect(jje) jje = jje + 1 idimb = lect(jje) jje = jje + 1 NTVAR = lect(jje) jje = jje + 1 NLIAA = lect(jje) jje = jje + 1 NRES = lect(jje) jje = jje + 1 NCRES = lect(jje) jje = jje + 1 NPRES = lect(jje) jje = jje + 1 NREP = lect(jje) jje = jje + 1 NLSA = lect(jje) jje = jje + 1 NVALA = lect(jje) jje = jje + 1 NLSB = lect(jje) jje = jje + 1 NVALB = lect(jje) jje = jje + 1 NVES = lect(jje) jje = jje + 1 i2MAX = lect(jje) * seulement sortie chpoint pour pasapas * (et pas de listreel comme dans dyne) NRESPO=NRES NRESLI=0 NPRES = 1 segini MTRES * MTRES do lg1 = 1,NVES jje = jje + 1 ichres(lg1) = lect(jje) enddo do lg1 = 1,NLSA jje = jje + 1 ipola(lg1) = lect(jje) enddo do lg1 = 1,NLSA jje = jje + 1 inula(lg1) = lect(jje) enddo do lg1 = 1,NLSB jje = jje + 1 ipolb(lg1) = lect(jje) enddo do lg1 = 1,NLSB jje = jje + 1 inulb(lg1) = lect(jje) enddo do lg1 = 1,nlsa do lg2 = 1,ntvar jje = jje + 1 ilirea(lg1,lg2) = lect(jje) enddo enddo do lg1 = 1,nlsa do lg2 = 1,ntvar jje = jje + 1 ilirna(lg1,lg2) = lect(jje) enddo enddo do lg1 = 1,nlsb do lg2 = 1,ntvar jje = jje + 1 ilireb(lg1,lg2) = lect(jje) enddo enddo do lg1 = 1,nlsb do lg2 = 1,ntvar jje = jje + 1 ilirnb(lg1,lg2) = lect(jje) enddo enddo do lg1 = 1,nliaa do lg2 = 1,2 jje = jje + 1 ilpola(lg1,lg2) = lect(jje) enddo enddo * MTPAS if (JLIAIB.eq.1) then segini MTPAS ktpas = mtpas else mtpas = ktpas endif do lu1 = 1,nplb cbp,2020-09 do lu2 = 1, 4 do lu2 = 1, 2 do lu3 = 1,idimb jjr = jjr + 1 enddo enddo enddo do lu1 = 1,na1 do lu2 = 1,4 jjr = jjr + 1 enddo enddo do lu1 = 1,nliaa do lu2 = 1, 4 do lu3 = 1,ntvar jjr = jjr + 1 enddo enddo enddo do lu1 = 1,nliab do lu2 = 1, 4 do lu3 = 1,ntvar jjr = jjr + 1 enddo enddo enddo do lu1 = 1,nplb do lu2 = 1, 2 do lu3 = 1,idim jjr = jjr + 1 enddo enddo enddo do lu1 = 1,2 do lu2 = 1, nliab do lu3 = 1,4 do lu4 = 1,nplb jjr = jjr + 1 enddo enddo enddo enddo do lu1 = 1,na1 jjr = jjr + 1 jjr = jjr + 1 enddo * MTQ MTQ = KTQ do lu1 = 1,na1 do lu2 = 1,2 jjr = jjr + 1 enddo enddo do lu1 = 1,na1 do lu2 = 1,2 jjr = jjr + 1 enddo enddo * MTLIAB segini MTLIAB do lu1 = 1,nliab do lu2 = 1,nxpalb jjr = jjr + 1 enddo enddo do lu1 = 1,nliab do lu2 = 1,nip jjr = jjr + 1 enddo enddo do lu1 = 1,nliab do lu2 = 1,nip jjr = jjr + 1 enddo enddo do lg1 = 1,nliab do lg2 = 1,nipalb jje = jje + 1 ipalb(lg1,lg2) = lect(jje) enddo enddo do lg1 = 1,nliab do lg2 = 1,nplbb jje = jje + 1 iplib(lg1,lg2) = lect(jje) enddo enddo do lg1=1,nplb jje = jje + 1 jplib(lg1) = lect(jje) enddo cbp cas particulier ou IPALB contient un listreel a activer (palier) do lg1 = 1,nliab if(ipalb(lg1,1).eq.60) then if(ipalb(lg1,5).eq.1) then nlob=ipalb(lg1,6) do ilob=1,nlob mlree1=ipalb(lg1,7+ilob) segact,mlree1 enddo else mlree1=ipalb(lg1,7) segact,mlree1 endif endif enddo cbp fin du cas particulier ou IPALB contient un listreel a activer * MTPHI segini MTPHI do lu1 = 1,nsb do lu2 = 1,nplsb do lu3 = 1,na2 do lu4 = 1,idimb jjr = jjr + 1 enddo enddo enddo enddo do lg1=1,nplb jje = jje + 1 ibasb(lg1) = lect(jje) enddo do lg1=1,nplb jje = jje + 1 iplsb(lg1) = lect(jje) enddo do lg1=1,nsb jje = jje + 1 inmsb(lg1) = lect(jje) enddo do lg1=1,nsb jje = jje + 1 iorsb(lg1) = lect(jje) enddo do lg1=1,nsb jje = jje + 1 iarota(lg1) = lect(jje) enddo * MTFEX NPFEXA = q1(/1) NPFEXB = 0 segini MTFEX do lu1 = 1,nplb do lu2 = 1,npc1 do lu3 = 1,2 do lu4 = 1,idimb jjr = jjr + 1 enddo enddo enddo enddo do lu1 = 1,npfexa jjr = jjr + 1 enddo * LOCLFA segini loclfa c do lu1 = 1,na1 c do lu2 = 1,4 c jjr = jjr + 1 c prog(jjr) = ftest(lu1,lu2) c enddo c enddo c do lu1 = 1,na1 c do lu2 = 1,4 c jjr = jjr + 1 c prog(jjr) = ftota0(lu1,lu2) c enddo c enddo *LOCLB1 segini loclb1 do lu1 = 1,nplb do lu2 = 1,6 jjr = jjr + 1 enddo enddo KTRES = MTRES KPREF = MPREF SEGINI,MSAM KSAM=MSAM DO 100 IP=1,NPLB JPLIBB(IP)=JPLIB(IP) 100 CONTINUE itkm = 0 jtmail = itmail JTRES = KTRES JPREF = KPREF NLIAA = ilpola(/1) NXPALA = 1 NIPALA=3 NPLAA = 0 NPLA = 0 segini MTLIAA ktliaa = mtliaa IF (IERR.NE.0) RETURN MSAM=KSAM SEGSUP,MSAM ELSE * 1er pas i2MAX = 0 MTQ = ktq MTPHI = ktphi do istru=1,nsstru if(iarota(istru).ne.0) rigide = .true. enddo MTLIAB = ktliab c NSB = XPHILB(/1) NPLSB = XPHILB(/2) c NA2 = XPHILB(/3) c IDIMB = XPHILB(/4) c NPLB = JPLIB(/1) NA1 = nndefo segini loclfa KOCLFA = loclfa segini loclb1 KOCLB1 = loclb1 NPAS = 0 MTRES = KTRES ITINIT = 0 REPRIS = .false. JKCPR = kcpr NLIAA = ilpola(/1) NXPALA = 1 NIPALA=3 NPLAA = 0 NPLA = 0 segini MTLIAA ktliaa = mtliaa * voir comalo NTVAR = 6 + 4 * IDIM * segini mtpas if (JLIAIB.eq.1) then segini MTPAS ktpas = mtpas else mtpas = ktpas endif JKTPAS = ktpas NPFEXA = q1(/1) NPFEXB = 0 SEGINI MTFEX KTFEX = MTFEX JKTLIAB = ktliab JKTQ = ktq JKTPHI = ktphi JKTKAM = KTKAM * kich : permet d'initialiser mais inexact & JKTPHI,JKCPR,KOCLFA,KOCLB1,REPRIS,RIGIDE,lmodyn) * segsup mtfex ENDIF IVINIT = 0 * SEGINI MTFEX KTFEX = MTFEX nliady = nliab + nliaa c NLIAB = IPALB(/1) NPAS = NPAS + 1 NPASF = 1 do istru=1,nsstru if(iarota(istru).ne.0) rigide = .true. enddo c calculs en 2 demi-pas Runge-Kutta/ initialisation pour 1ere liaison do kna =1,na1 IF(JLIAIB.eq.1) THEN *voir devfxa * fexa(kna,1,1) = q3(kna,2) * q1(kna,3) = q1(kna,2) q1(kna,2) = (q1(kna,1) + q1(kna,2))* 0.5d0 * q2(kna,3) = q2(kna,2) ftota(kna,2) = q3(kna,2) ftota(kna,1) = q3(kna,2) ENDIF q2(kna,1) = 0.d0 q2(kna,2) = 0.d0 enddo ** voir devpas.eso DO III = 2,1,-1 PDT=XDT(npasf) T=XTEMPS(npasf) ** Ajout des forces de raideur avant demi-pas IF(JLIAIB.eq.1) THEN ENDIF * * estimation de la vitesse (ici plutot que dans DEVLF*, bp,2020-09): * on espere que cela est coherent ici ...? * \dot{q}_1/2 ~ ({q}_1/2 - {q}_0 ) / dt/2 * \dot{q}_1 ~ ({q}_1 - {q}_1/2) / dt/2 DO I=1,NA1 Q2(I,III)=(Q1(I,III)-Q1(I,III+1))*2./PDT ENDDO * forces liaisons base A (modes) IF (NLIAA.NE.0) THEN & NLIAA,PDT,T,npasf,III,FINERT,IVINIT,FTEST) ENDIF * * * Ajout des forces de liaison base B matérielle * IF (NLIAB.NE.0) THEN & XPHILB,JPLIB,NPLB,IDIMB,FTOTB,FTOTBA,XPTB,PDT,T, & npasf,IBASB,IPLSB,INMSB,IORSB,NSB,NPLSB,NA2,III, & FEXPSM,NPC1,IERRD,FTEST2, & XABSCI,XORDON,NIP,FEXB,RIGIDE,IAROTA,XCHPFB) IF (IERRD.NE.0) RETURN ENDIF IF(JLIAIB.eq.nliady) THEN if (III.eq.2) then if (npas.eq.1) then do jj = 1,na1 ftota(jj,3) = ftota(jj,2) enddo endif else endif ENDIF ENDDO * CALL DYNE16(Q1,Q2,Q3,NA1,FTOTA,XPTB,NPLB,IDIMB,FINERT) DO 10 I=1,NA1 FINERT(I,3) = FINERT(I,1) FINERT(I,4) = FINERT(I,2) FTOTA(I,3) = FTOTA(I,1) FTOTA(I,4) = FTOTA(I,2) 10 CONTINUE cbp,2020-09 DO 20 IP = 1,NPLB cbp,2020-09 DO 22 ID = 1,IDIMB cbp,2020-09 XPTB(IP,3,ID) = XPTB(IP,1,ID) cbp,2020-09 XPTB(IP,4,ID) = XPTB(IP,2,ID) cbp,2020-09 22 CONTINUE cbp,2020-09 20 CONTINUE * * calcul des travaux * fin devpas.eso * * production chpoint forces base A (devso2) * meleme = itmail segact meleme if (lisous(/1).eq.0) then ipmmod = itmail ipmsta = 0 else ipmmod = lisous(1) ipmsta = lisous(2) endif NSOUPO = 1 if(ipmmod.gt.0.and.ipmsta.gt.0) nsoupo = 2 NAT=1 SEGINI,MCHPOI IPCHPO = MCHPOI MTYPOI = 'FLIAISONS' IFOPOI = IFOUR * nature diffuse JATTRI(1) = 1 nmost0 = 0 KIPCHP = 0 icoe1 = 1 ymaxf = 0.d0 if (CMATE.eq.'PO_CE_MO') then if (i2max.ne.0) then if (FTOTBA(abs(i2max))*i2max.lt.0.d0) icoe1 = -1 endif endif if (ipmmod.gt.0) then NC = 1 IF(JLIAIB.eq.nliady) NC = 2 SEGINI,MSOUPO KIPCHP = KIPCHP + 1 IPCHP(KIPCHP) = MSOUPO NOCOMP(1) = 'FALF' NOHARM(1) = NIFOUR if (NC.eq.2) then NOCOMP(2) = NOCOMP(1) NOCOMP(2)(1:1) = 'V' NOHARM(2) = NIFOUR endif IGEOC = ipmmod ipt1 = ipmmod segact ipt1 N = ipt1.num(/2) nmost0 = N SEGINI,MPOVAL IPOVAL = MPOVAL * do ii = 1,N if (i2max.eq.0) then if (abs(FTOTBA(ii)).gt.ymaxf) then ymaxf = abs(FTOTBA(ii)) i2max = ii if (FTOTBA(ii).lt.0.d0) i2max = -i2max endif endif vpocha(ii,1) = -icoe1*FTOTBA(ii) if (NC.eq.2) vpocha(ii,2) = q2(ii,1) enddo SEGDES,MPOVAL,MSOUPO endif *kich : extension a tout hasard if (ipmsta.gt.0) then NC = 1 IF(JLIAIB.eq.nliady) NC = 2 SEGINI,MSOUPO KIPCHP = KIPCHP + 1 IPCHP(KIPCHP) = MSOUPO NOCOMP(1) = 'FBET' NOHARM(1) = NIFOUR if (NC.eq.2) then NOCOMP(2) = NOCOMP(1) NOCOMP(2)(1:1) = 'V' NOHARM(2) = NIFOUR endif IGEOC = ipmsta ipt1 = ipmsta segact ipt1 N = ipt1.num(/2) SEGINI,MPOVAL IPOVAL = MPOVAL * do ii = 1,N vpocha(ii,1) = -icoe1*FTOTBA(ii + nmost0) if (NC.eq.2) vpocha(ii,2) = q2(ii,1) enddo SEGDES,MPOVAL,MSOUPO endif segdes MCHPOI varf(1) = IPCHPO MTRES = KTRES * NINS = 1 NRES = XRES(/1) NCRES = XRES(/2) NPRES = XRES(/3) NREP = XREP(/1) NLSA = XRESLA(/1) NLSB = XRESLB(/1) NVES = ICHRES(/1) NVALA = IPLRLA(/2) NVALB = IPLRLB(/2) * if (npas.eq.1) then iins2 = 2 else iins2 = 1 endif * range les resultats de la bonne liaison if (jliaib.gt.1) then do lu3 = 1,ntvar xvalb(1,1,lu3)=xvalb(jliaib,1,lu3) enddo * DO IP=1,NPLB * DO ID=1,2 * II = II + 1 * XCHPFB(ID,IIL,1,IP) = XCHPFB(ID,jliaib,1,IP) * ENDDO * ENDDO endif * transit resultat & NCRES,NPRES,XREP,NREP,XVALA,INULA,NLIAA,NLSA, & XRESLA,XVALB,INULB,NLIAB,NLSB,XRESLB,ILIREA,ILIREB, & NTVAR,XPALB,IPALB,XMREP,IMREP,IDIMB,WEXT,WINT, & XCHPFB,NPLB) * sauvegarde pour aller plus vite pas suivant * JG = 1000 jje = 0 segini MLENTI jje = jje + 1 lect(jje) = JLIAIB nchain = 0 mlent3 = ichain segact mlent3 nchain = mlent3.lect(/1) jje = jje + 1 lect(jje) = nchain do lg = 1,nchain jje = jje + 1 lect(jje)=mlent3.lect(lg) enddo jje = jje + 1 lect(jje) = NPAS jje = jje + 1 lect(jje) = NIPALB jje = jje + 1 lect(jje) = NXPALB jje = jje + 1 lect(jje) = NPLBB jje = jje + 1 lect(jje) = NPLB jje = jje + 1 lect(jje) = NPLSB jje = jje + 1 lect(jje) = NIP jje = jje + 1 lect(jje) = nsstru jje = jje + 1 lect(jje) = nndefo jje = jje + 1 lect(jje) = nliab jje = jje + 1 lect(jje) = nsb jje = jje + 1 lect(jje) = na2 jje = jje + 1 lect(jje) = idimb jje = jje + 1 lect(jje) = NTVAR jje = jje + 1 lect(jje) = NLIAA jje = jje + 1 lect(jje) = NRES jje = jje + 1 lect(jje) = NCRES jje = jje + 1 lect(jje) = NPRES jje = jje + 1 lect(jje) = NREP jje = jje + 1 lect(jje) = NLSA jje = jje + 1 lect(jje) = NVALA jje = jje + 1 lect(jje) = NLSB jje = jje + 1 lect(jje) = NVALB jje = jje + 1 lect(jje) = NVES jje = jje + 1 lect(jje) = i2MAX * MTRES do lg1 = 1,NVES jje = jje + 1 lect(jje) = ichres(lg1) enddo do lg1 = 1,NLSA jje = jje + 1 lect(jje) = ipola(lg1) enddo do lg1 = 1,NLSA jje = jje + 1 lect(jje) = inula(lg1) enddo do lg1 = 1,NLSB jje = jje + 1 lect(jje) = ipolb(lg1) enddo do lg1 = 1,NLSB jje = jje + 1 lect(jje) = inulb(lg1) enddo do lg1 = 1,nlsa do lg2 = 1,ntvar jje = jje + 1 lect(jje)= ilirea(lg1,lg2) enddo enddo do lg1 = 1,nlsa do lg2 = 1,ntvar jje = jje + 1 lect(jje)= ilirna(lg1,lg2) enddo enddo do lg1 = 1,nlsb do lg2 = 1,ntvar jje = jje + 1 lect(jje)= ilireb(lg1,lg2) enddo enddo do lg1 = 1,nlsb do lg2 = 1,ntvar jje = jje + 1 lect(jje)= ilirnb(lg1,lg2) enddo enddo do lg1 = 1,nliaa do lg2 = 1,2 jje = jje + 1 lect(jje)= ilpola(lg1,lg2) enddo enddo JG = (nplb*4*idimb)+(na1*4)+(nliaa*4*ntvar)+(nliab*4*ntvar)+ &(nplb*2*idim)+(2*nliab*4*nplb)+(2*na1)+(na1*2*2)+ &(nliab*(nxpalb+nip+nip))+(nsb*na2*nplsb*idimb)+ &(nplb*npc1*2*idimb)+ npfexa +(nplb*6*2) SEGINI MLREEL jjr = 0 * MTPAS do lu1 = 1,nplb cbp,2020-09 do lu2 = 1, 4 do lu2 = 1, 2 do lu3 = 1,idimb jjr = jjr + 1 enddo enddo enddo do lu1 = 1,na1 do lu2 = 1,4 jjr = jjr + 1 enddo enddo do lu1 = 1,nliaa do lu2 = 1, 4 do lu3 = 1,ntvar jjr = jjr + 1 enddo enddo enddo do lu1 = 1,nliab do lu2 = 1, 4 do lu3 = 1,ntvar jjr = jjr + 1 enddo enddo enddo do lu1 = 1,nplb do lu2 = 1, 2 do lu3 = 1,idim jjr = jjr + 1 enddo enddo enddo do lu1 = 1,2 do lu2 = 1, nliab do lu3 = 1,4 do lu4 = 1,nplb jjr = jjr + 1 enddo enddo enddo enddo do lu1 = 1,na1 jjr = jjr + 1 jjr = jjr + 1 enddo * MTQ do lu1 = 1,na1 do lu2 = 1,2 jjr = jjr + 1 enddo enddo do lu1 = 1,na1 do lu2 = 1,2 jjr = jjr + 1 enddo enddo * MTLIAB do lu1 = 1,nliab do lu2 = 1,nxpalb jjr = jjr + 1 enddo enddo do lu1 = 1,nliab do lu2 = 1,nip jjr = jjr + 1 enddo enddo do lu1 = 1,nliab do lu2 = 1,nip jjr = jjr + 1 enddo enddo do lg1 = 1,nliab do lg2 = 1,nipalb jje = jje + 1 lect(jje)= ipalb(lg1,lg2) enddo enddo do lg1 = 1,nliab do lg2 = 1,nplbb jje = jje + 1 lect(jje)= iplib(lg1,lg2) enddo enddo do lg1=1,nplb jje = jje + 1 lect(jje)= jplib(lg1) enddo * MTPHI do lu1 = 1,nsb do lu2 = 1,nplsb do lu3 = 1,na2 do lu4 = 1,idimb jjr = jjr + 1 enddo enddo enddo enddo do lg1=1,nplb jje = jje + 1 lect(jje)= ibasb(lg1) enddo do lg1=1,nplb jje = jje + 1 lect(jje)= iplsb(lg1) enddo do lg1=1,nsb jje = jje + 1 lect(jje)= inmsb(lg1) enddo do lg1=1,nsb jje = jje + 1 lect(jje)= iorsb(lg1) enddo do lg1=1,nsb jje = jje + 1 lect(jje)= iarota(lg1) enddo * MTFEX do lu1 = 1,nplb do lu2 = 1,npc1 do lu3 = 1,2 do lu4 = 1,idimb jjr = jjr + 1 enddo enddo enddo enddo do lu1 = 1,npfexa jjr = jjr + 1 enddo * LOCLFA c do lu1 = 1,na1 c do lu2 = 1,4 c jjr = jjr + 1 c prog(jjr) = ftest(lu1,lu2) c enddo c enddo c do lu1 = 1,na1 c do lu2 = 1,4 c jjr = jjr + 1 c prog(jjr) = ftota0(lu1,lu2) c enddo c enddo *LOCLB1 do lu1 = 1,nplb do lu2 = 1,6 jjr = jjr + 1 enddo enddo JG = jjr segadj mlreel varf(4) = mlreel JG = JJE segadj mlenti varf(3) = mlenti varf(5) = itmail segdes mlreel,mlenti * JKTLIAB= mtliab JKTPHI = mtphi JKTQ = mtq JKTRES = ktres JKTNUM = mtnum JKTFEX = mtfex JKPREF = mpref JKTLIAA = 0 JKTKAM = 0 JKTPAS = mtpas IPMAIL = itmail JMAILz = itmail REPRIS = .false. lmodyn = .true. jchain = ichain ITDYN = its2 & JKTPAS,JKTRES,JKTNUM,NINS,JMAILz,REPRIS,JCHAIN, & LMODYN,ITDYN) if (ierr.ne.0) return if (itdyn.gt.0) varf(2) = itdyn IF(JLIAIB.eq.nliady) then SEGSUP,MPREF segsup,MTQ SEGSUP,MTKAM SEGSUP,MTPAS ENDIF SEGSUP MTFEX segsup mtnum * SEGSUP,MTPHI SEGSUP,MTLIAB SEGSUP,MTLIAA SEGSUP,MTRES SEGSUP,LOCLFA SEGSUP,LOCLB1 if (npas.eq.1.and.jliaib.lt.nliady) then mlent3 = ichain segsup mlent3 endif ichain = jchain RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales