excoor
C EXCOOR SOURCE PASCAL 21/06/22 21:15:04 11039 C EXTRAIT LA IEME COORDONNEE D'UN POINT. SI IDIM+1 REND LA DENSITE C SI PAS DE NOMBRE SPECIFIE REND TOUTES LES COORDONNEES C DANS LE CAS D'OBJET MELEME FAIT LA MEME CHOSE SAUF QU'IL CREE C AUTANT DE CHPOIN QUE IDIM SUBROUTINE EXCOOR IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMCOORD -INC SMCHAML PARAMETER ( NBTYP = 5 ) * & 'MMODEL '/ * segact mcoord * LECTURE DE LA COMPOSANTE ( EVENTUELLE ) * * IF (IRETOU.EQ.0) THEN RETURN ENDIF IF (IPOS.EQ.0) THEN MOTERR(1:8)=MOTYPE RETURN ENDIF * IF(IPOS.NE.1) THEN IF((ICOMP.LE.0.OR.ICOMP.GT.IDIM+1).AND.IRT2.EQ.1) THEN INTERR(1)=ICOMP RETURN ENDIF IF(IRT2.EQ.0) THEN IVAL=0 ELSE IVAL=ICOMP ENDIF ENDIF * GO TO (100,200,300,400,500),IPOS C C CAS DU POINT C 100 CONTINUE IP=IRT1 IC=ICOMP IF (IERR.NE.0) RETURN SEGACT MCOORD IREF=(IP-1)*(IDIM+1) IF(IRT2.EQ.0) GOTO 10 XRET=XCOOR(IREF+IC) GOTO 20 10 CONTINUE DO 11 I=1,IDIM II=IDIM+1-I XRET=XCOOR(IREF+II) 11 CONTINUE 20 CONTINUE RETURN C C CAS DU MELEME C 200 CONTINUE RETURN C C CAS DU MCHAML C 300 CONTINUE IPCHE1=0 IPCHE2=0 IPCHE3=0 MCHEL1=IRT1 350 CONTINUE I1=MCHEL1.IMACHE(/1) C MCHAML VIDE IF (I1.EQ.0) THEN N1=0 N3=0 L1=8 SEGINI,MCHEL2 MCHEL2.IFOCHE=IFOUR MCHEL2.TITCHE=' ' IPCHE1=MCHEL2 IF (IVAL.EQ.0) THEN IF (IDIM.EQ.2) THEN SEGINI,MCHEL3 MCHEL3.IFOCHE=IFOUR MCHEL3.TITCHE=' ' IPCHE2=MCHEL3 ELSEIF (IDIM.EQ.3) THEN SEGINI,MCHEL3 MCHEL3.IFOCHE=IFOUR MCHEL3.TITCHE=' ' IPCHE2=MCHEL3 SEGINI,MCHEL4 MCHEL4.IFOCHE=IFOUR MCHEL4.TITCHE=' ' IPCHE3=MCHEL4 ENDIF ENDIF C MCHAML NON VIDE ELSE ENDIF IF(IERR.EQ.0)THEN IF(IPCHE2.NE.0)THEN ENDIF IF(IPCHE3.NE.0)THEN ENDIF ENDIF RETURN C C CAS DU CHPOINT C 400 CONTINUE RETURN C C CAS DU MMODEL C 500 CONTINUE C IRT1 : pointeur sur objet MMODEL IF (IERR.NE.0) RETURN IF (IERR.NE.0) RETURN GOTO 350 END
© Cast3M 2003 - Tous droits réservés.
Mentions légales