recof2
C RECOF2 SOURCE CB215821 24/04/12 21:17:05 11897 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMCHPOI -INC SMELEME -INC SMMODEL -INC SMCHAML -INC SMCOORD -INC SMLMOTS CHARACTER*(LOCOMP) mocom1 segment icta integer icpt(ima) character*4 iccomp(ima) endsegment segment icpr(nbpts) segment modsta integer pimoda(nmoda),pistat(nstat) integer ivmoda(nmoda),ivstat(nstat) endsegment SEGMENT MSWMIL CHARACTER*(LOCOMP) MOTDDL(IA) ENDSEGMENT * PARAMETER(NDEPL=10) CHARACTER*4 CMOT CHARACTER*8 CMATE CHARACTER*(NCONCH) CONM CHARACTER*4 MLDREE(ndepl),MLDIMA(ndepl) DATA MLDREE/'UX','UY','UZ','UR','UT','RX','RY','RZ','RT','P'/ DATA MLDIMA/'IUX','IUY','IUZ','IUR','IUT','IRX','IRY','IRZ','IRT' &,'IP'/ nstat = 100 kstat = 0 nmoda = 100 kmoda = 0 segini modsta segini icpr ipout = 0 impou = 0 IA = 1 segini mswmil motddl(1) = 'LX' MMODEL = IPMODL SEGACT MMODEL NSOUS = KMODEL(/1) MCHELM = IPCHA1 segact mchelm DO 50 ISOUS=1,NSOUS IMODEL=KMODEL(ISOUS) SEGACT IMODEL CMATE = cmatee if (cmate.eq.'STATIQUE'.or.cmate.eq.'MODAL') then do im = 1 , imache(/1) if (imache(im).eq.imamod) then if (conche(im).eq.conmod) then mchaml = ichaml(im) segact mchaml do iv = 1,ielval(/1) if (nomche(iv).eq.'DEFO') then if (cmate.eq.'STATIQUE') then kstat = kstat + 1 ivstat(kstat) = ielval(iv) pistat(kstat) = imamod meleme = imamod segact meleme do ip =1, num(/2) icpr(num(1,ip))=kstat enddo if (kstat.eq.nstat) then nstat = nstat + 100 segadj modsta endif endif if (cmate.eq.'MODAL') then kmoda = kmoda + 1 ivmoda(kmoda) = ielval(iv) pimoda(kmoda) = imamod meleme = imamod segact meleme if (itypel.ne.1) then goto 99 endif if (num(/1).ne.1) then goto 99 endif do ip =1 ,num(/2) icpr(num(1,ip))=kmoda enddo if (kmoda.eq.nmoda) then nmoda = nmoda + 100 segadj modsta endif endif melval = ielval(iv) segact melval endif enddo endif endif enddo endif 50 CONTINUE nmoda = kmoda nstat = kstat segadj modsta if (nmoda.eq.0.and.nstat.eq.0) then goto 99 endif mchpoi = ichp1 segact mchpoi nsoupo = ipchp(/1) DO is = 1 ,nsoupo msoupo = ipchp(is) segact msoupo NC = NOCOMP(/2) ipt1 = igeoc mpoval = ipoval segact ipt1,mpoval N = vpocha(/1) DO ic = 1,NC mocom1 = nocomp(ic) DO 90 ipn = 1 , N ipts = ipt1.num(1,ipn) sca1 = vpocha(ipn,ic) if (mocom1.eq.'BETA'.or.mocom1.eq.'IBET') then kstat = icpr(ipts) if (kstat.eq.0) goto 90 melval = ivstat(kstat) meleme = pistat(kstat) else if (mocom1.eq.'ALFA'.or.mocom1.eq.'IALF') then kmoda = icpr(ipts) if (kmoda.eq.0) goto 90 melval = ivmoda(kmoda) meleme = pimoda(kmoda) else goto 90 endif if (mocom1.eq.'BETA'.or.mocom1.eq.'ALFA') then do ib = 1,num(/2) if (num(1,ib).eq.ipts) then ibmn = min(ib,ielche(/2)) ichin = ielche(1,ibmn) if (ipout.gt.0) then ich1 = ipout else endif endif enddo endif if (mocom1.eq.'IBET'.or.mocom1.eq.'IALF') then do ib = 1,num(/2) if (num(1,ib).eq.ipts) then ibmn = min(ib,ielche(/2)) ichin = ielche(1,ibmn) if (impou.gt.0) then ich1 = impou else endif endif enddo endif 90 CONTINUE ENDDO ENDDO ich1 = ipout MCHPOI=ich1 SEGACT MCHPOI*MOD JATTRI(1)=1 if (impou.gt.0) then JGN = 4 JGM = ndepl segini mlmot1,mlmot2 iplm1 = mlmot1 iplm2 = mlmot2 do im = 1,JGM enddo MCHPOI=impou JATTRI(1)=1 ipout = impou endif 99 segsup modsta,icpr END
© Cast3M 2003 - Tous droits réservés.
Mentions légales