cmoda2
C CMODA2 SOURCE JK148537 23/08/21 21:15:06 11723 & IB,IGAU,NBPGAU,NBGMAT,NELMAT,IFOURB) * * * IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCREEL -INC DECHE -INC SMLREEL -INC SMEVOLL -INC SMLMOTS -INC SMELEME -INC SMCHPOI CHARACTER*4 lesinc(7),lesdua(7) DATA lesinc/'UX','UY','UZ','RX','RY','RZ','UR'/ DATA lesdua/'FX','FY','FZ','MX','MY','MZ','FR'/ * IF (cmate.eq.'MODAL') THEN c caracteristiques freq, mass freq1 = valmat(1) xmass1 = valmat(2) omeg1 = 2. * xpi * freq1 xamor1 = valmat(4) * do jj = 1,epstf(/1) if (jj.eq.1) jjsi = 1 if (jj.eq.2) jjsi = 3 effx = epstf(jj) sigf(jjsi) = effx * xmass1 * omeg1 * omeg1 c write(6,*) 'cda2 ', jj, effx, xmass1,omeg1,sigf(jjsi) if (ifomod.eq.6.) then omef = 2.*xpi*tempf sigf(jjsi) = sigf(jjsi) - (effx * xmass1 * omef * omef) * write(6,*) sigf(1), effx, xmass1 , (omef*omef) if (jj.eq.2) sigf(jjsi) = sigf(jjsi) * (-1) if (xamor1.ne.0..and.epstf(/1).gt.1) then endif * write(6,*) 'cda2 ', jj, effx, freq1,xmass1,omeg1,sigf(jjsi) endif enddo ENDIF IF (cmate.eq.'STATIQUE'.or.cmate.eq.'MODAL') THEN IPCHPO = 0 if (cmate.eq.'STATIQUE') then if (valmat(5).gt.0) then lricr = nint(valmat(5)) ipmmod = nint(valmat(6)) ipmsta = nint(valmat(7)) lmacr = nint(valmat(8)) lamcr = nint(valmat(9)) else return endif elseif(cmate.eq.'MODAL') then if (valmat(7).gt.0) then lricr = nint(valmat(7)) ipmmod = 0 ipmsta = nint(valmat(8)) lmacr = nint(valmat(9)) lamcr = nint(valmat(10)) else return endif endif mlreel = lricr segact mlreel if(ifomod.eq.6) then mlree1 = lmacr segact mlree1 omef = 2.*xpi*tempf return endif if (lamcr.gt.0) then mlree2 = lamcr segact mlree2 endif endif * return endif JG0 = 0 DO 212 jj = 1,epstf(/1) if (jj.eq.1) jjsi = 1 if (jj.eq.2) jjsi = 3 effx = epstf(jj) sigf(2) = 0 c write(6,*) 'c2',prog(/1),mlree1.prog(/1),lamcr,effx IF (cmate.eq.'STATIQUE') THEN if(ifomod.eq.6) then if (jj.eq.2) sigf(jjsi) = sigf(jjsi) * (-1) if (lamcr.gt.0) then endif endif endif goto 212 if (jj.eq.epstf(/1)) then segdes mlreel if (ifomod.eq.6) then segdes mlree1 if (lamcr.gt.0) segdes mlree2 endif return endif else sigf(jjsi) = 0.d0 endif ENDIF * if (jj.eq.1) then NSOUPO = 1 if(ipmmod.gt.0.and.ipmsta.gt.0) NSOUPO = 2 NAT=1 SEGINI,MCHPOI IPCHPO = MCHPOI MTYPOI = 'FMODSTA' IFOPOI = IFOUR * nature diffuse JATTRI(1) = 1 nmo0 = 0 KIPCHP = 0 if (ipmmod.gt.0) then NC = epstf(/1) SEGINI,MSOUPO KIPCHP = KIPCHP + 1 IPCHP(KIPCHP) = MSOUPO NOCOMP(1) = 'FALF' NOHARM(1) = NIFOUR if (epstf(/1).eq.2) then NOCOMP(2) = 'IFAL' NOHARM(2) = NIFOUR endif IGEOC = ipmmod ipt1 = ipmmod segact ipt1 N = ipt1.num(/2) nmo0 = N JG0 = JG0 + N SEGINI,MPOVAL IPOVAL = MPOVAL ipomo0 = ipoval endif endif * if (ipmmod.gt.0) then N = nmo0 mpoval = ipomo0 do ii = 1,N c write(6,*) 'cc',vpocha(/1),vpocha(/2),ii,jj,prog(/1) if (ifomod.eq.6) then if (jj.eq.2) vpocha(ii,jj) = vpocha(ii,jj) * (-1) if (lamcr.gt.0) then endif endif endif * write(6,*)'m',effx,ii,ipt1.num(1,ii),mlree1.prog(ii),vpocha(ii,1) enddo if (jj.eq.epstf(/1)) SEGDES,MPOVAL,MSOUPO endif if (jj.eq.1) then if (ipmsta.gt.0) then NC = epstf(/1) SEGINI,MSOUPO KIPCHP = KIPCHP + 1 IPCHP(KIPCHP) = MSOUPO NOCOMP(1) = 'FBET' NOHARM(1) = NIFOUR if (epstf(/1).eq.2) then NOCOMP(2) = 'IFBE' NOHARM(2) = NIFOUR endif IGEOC = ipmsta ipt1 = ipmsta segact ipt1 N = ipt1.num(/2) nst0 = N SEGINI,MPOVAL IPOVAL = MPOVAL ipost0 = ipoval endif endif * if (ipmsta.gt.0) then N = nst0 mpoval = ipost0 do ii = 1,N if (ifomod.eq.6) then vpocha(ii,jj) = vpocha(ii,jj) - if (jj.eq.2) vpocha(ii,jj) = vpocha(ii,jj) * (-1) if (lamcr.gt.0) then vpocha(ii,jj) = vpocha(ii,jj) + endif endif endif c write(6,*)'s',effx,ii,ipt1.num(1,ii),mlree2.prog(JG0 +ii), c &vpocha(ii,1),ipchpo enddo c write(6,*)'s',(mlree2.prog(JG0+ii),ii=1,N),(vpocha(ii,jj),ii=1,N) if (jj.eq.epstf(/1)) SEGDES,MPOVAL endif 212 CONTINUE * ENDDO if (IPCHPO.gt.0) segdes MCHPOI sigf(2) = IPCHPO c write(6,*) cmate,epstf(/1),epstf(1),epstf(2) c write(6,*)'c2',cmate,sigf(/1),jj,(sigf(ll),ll = 1,sigf(/1)) segdes mlreel if (ifomod.eq.6) then segdes mlree1 if (lamcr.gt.0) segdes mlree2 endif return ENDIF IF (cmate.EQ.'IMPELAST'.or.cmate.eq.'IMPVOIGT') THEN xraid = xmat(1) do ig = 1,epstf(/1) sigf(ig) = xraid * epstf(ig) enddo * write(6,*) 'cmoda2', (sigf(ll), ll = 1,3) IF (cmate.eq.'IMPVOIGT') THEN xvisc = xmat(2) do ig = 1,epstf(/1) sigf(ig) = sigf(ig) + (xvisc* (epstf(ig) - epst0(ig)) / xdt) enddo ENDIF IF (mele.eq.45) THEN ENDIF ENDIF IF (cmate.EQ.'IMPREUSS') THEN xraid = xmat(1) xvisc = xmat(2) do ig = 1,epstf(/1) xepe0 = var0(ig) if (xdt.ne.0) then * xx = (epstf(ig) - epst0(ig) + xepe0) * xvisc / xdt yy = (xraid + (xvisc /xdt)) xx = (xraid*epstf(ig)) + (xvisc*xepe0/xdt) varf(ig) = xx / yy else varf(ig) = var0(ig) endif sigf(ig) = (epstf(ig)- varf(ig)) * xraid enddo * write(6,*) 'cmoda2 ',epstf(/1), epin0(/1),xepe0, epstf(1) ENDIF if(ifomod.eq.6) then IF (cmate.EQ.'IMPCOMPL') THEN xraid = xmat(1) xamo1 = xmat(3) xmass1 = xmat(4) omef = 2.*xpi*tempf * write(6,*) 'ccompl', xraid,xamo1,xmass1,epstf(/1),sigf(/1) do ig = 1,epstf(/1) effx = epstf(ig) sigf(ig) = xraid * epstf(ig) if(xmass1.gt.0) then sigf(1) = sigf(1) - (effx * xmass1 * omef * omef) * write(6,*) sigf(1), effx, xmass1 , (omef*omef) endif if (ig.eq.2) sigf(ig) = sigf(ig)*(-1) enddo * write(6,*) (epstf(ij),ij=1,2),(sigf(ij),ij=1,2) ENDIF endif RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales