pouvlo
C POUVLO SOURCE PV090527 24/09/04 07:45:32 12000 *----------------------------------------------------------------------- * ADDITION DU VECTEUR LOCAL POUR LES POUTRES * ET LES TUYAUX S'IL EST ABSENT EN 3D *----------------------------------------------------------------------- * * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN) * ----------- * * IPMODL (E) POINTEUR D'OBJET MODELE * MLMOTS (E) POINTEUR SUR LE LISTMOTS DE CARACTERISTIQUES * ISUP (E) NUMERO DE SUPPORT DEMANDE * ICARA (E+S) POINTEUR SUR LE CHAMELEM * * LANGAGE: * -------- * * ESOPE + FORTRAN77 * *----------------------------------------------------------------------- * IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCHAMP -INC SMCHAML -INC SMMODEL -INC SMLMOTS -INC SMELEME -INC SMCOORD * * SEGMENT INFO * INTEGER INFELE(JG) * ENDSEGMENT CHARACTER*(NCONCH) CONM * segact mcoord SEGACT,MLMOTS * * LE VECTEUR EXISTE T-IL DEJA ? * IVECT=0 IVECX=0 IVECY=0 IVECZ=0 ivecT=1 ENDIF ivecx=1 ENDIF ivecy=1 ENDIF ivecz=1 ENDIF 1 CONTINUE * vecx vecy vecz existent. C'est OK if(ivecx.eq.1.and.ivecy.eq.1.and.ivecz.eq.1) then if (ivect.eq.0) then return else moterr='VECT' return endif endif * * ACTIVATIONS * MMODEL=IPMODL NSOUS=KMODEL(/1) MCHELM=ICARA SEGACT MCHELM * * BOUCLE SUR LES SOUS ZONES DU MODELE * DO 200 ISOUS=1,NSOUS * * TRAITEMENT DU MODELE * IMODEL=KMODEL(ISOUS) MELE =NEFMOD IPMAIL=IMAMOD CONM =CONMOD * * * INFORMATIONS SUR L'{L{MENT FINI * * CALL ELQUOI(MELE,0,ISUP,INFO,IMODEL) IF (IERR.NE.0) THEN ** SEGDES MCHELM RETURN ENDIF MFR =INFELE(13) IF(MFR.NE.7.AND.MFR.NE.13) THEN * SEGSUP INFO GO TO 200 ENDIF * * RECHERCHE DE LA ZONE DU CHAMELEM * N1 = IMACHE(/1) N3 = INFCHE(/2) LAZON = 0 DO 11 I=1,N1 IF (IPMAIL.NE.IMACHE(I) .OR. . CONM.NE.CONCHE(I)) GO TO 11 LAZON=I GO TO 12 11 CONTINUE * ** SEGDES MCHELM * SEGSUP INFO RETURN * 12 CONTINUE MCHAML=ICHAML(LAZON) SEGACT MCHAML N2=NOMCHE(/2) * y a t'il VECT ivect=0 do i=1,n2 if (nomche(i).eq.'VECT') ivect=i enddo melval=0 if(ivect.ne.0) then melval=ielval(ivect) segact melval endif N2=N2+3 SEGADJ MCHAML NOMCHE(N2-2)='VX' TYPCHE(N2-2)='REAL*8' NOMCHE(N2-1)='VY' TYPCHE(N2-1)='REAL*8' NOMCHE(N2 )='VZ' TYPCHE(N2 )='REAL*8' MELEME=IPMAIL SEGACT MELEME NBNN=NUM(/1) * * CREATION DU MELVAL ET REMPLISSAGE * N2EL=0 N2PTEL=0 N1EL=NUM(/2) N1PTEL=1 SEGINI MELVA1 IELVAL(N2-2)=MELVA1 SEGINI MELVA2 IELVAL(N2-1)=MELVA2 SEGINI MELVA3 IELVAL(N2 )=MELVA3 * DO 305 ID=1,N1EL IF(KERRE.NE.0) THEN INTERR(1)=ISOUS INTERR(2)=ID ** SEGDES MELEME ** SEGDES MELVA1,melva2,melva3,MCHAML,MCHELM,MLMOTS * SEGSUP INFO ENDIF * * CREATION DU VECTEUR * if (melval.eq.0) then else ipt=melval.ielche(1,min(melval.ielche(/2),id)) MELVA1.VELCHE(1,ID)=xcoor((ipt-1)*(idim+1)+1) MELVA2.VELCHE(1,ID)=xcoor((ipt-1)*(idim+1)+2) MELVA3.VELCHE(1,ID)=xcoor((ipt-1)*(idim+1)+3) endif 305 CONTINUE * * DESACTIVATION DES SEGMENTS PROPRES A LA ZONE GEOMETRIQUE ISOUS * ** SEGDES MELEME ** SEGDES MELVA1,melva2,melva3 * SEGSUP INFO * suppression de VECT si il etait la if(ivect.ne.0) then do i=ivect+1,ielval(/1) nomche(i-1)=nomche(i) typche(i-1)=typche(i) ielval(i-1)=ielval(i) enddo n2=ielval(/1)-1 segadj mchaml endif ** SEGDES MCHAML 200 CONTINUE * ** SEGDES MCHELM ** SEGDES,MLMOTS RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales