manur3
C MANUR3 SOURCE BP208322 15/06/22 21:20:28 8543 ************************************************************************ * * M A N U R 3 * ----------- * * FONCTION: * --------- * * CONSTRUCTION DU DESCRIPTEUR D'UN OBJET 'RIGIDITE' CREE * MANUELLEMENT. * L'UTILISATION DE CE SOUS-PROGRAMME N'EST PAS UNIVERSELLE. * * MODE D'APPEL: * ------------- * * CALL MANUR3 (IPELEM,IINCO,IDUAL,IPDESC) * * PARAMETRES: (E)=ENTREE (S)=SORTIE * ----------- * * IPELEM ENTIER (E) POINTEUR DE L'OBJET 'MAILLAGE' SUR LEQUEL * VA S'APPUYER LA 'RIGIDITE'. * IINCO SEGMENT (E) REGROUPEMENT DE POINTEURS SUR DES * 'LISTMOTS'. * SOIT IL N'Y A QU'1 'LISTMOTS', QUI CONTIENT * LES NOMS DES COMPOSANTES POUR UN NOEUD D'UN * ELEMENT DE L'OBJET DE POINTEUR "IPELEM", * SOIT IL Y A AUTANT DE 'LISTMOTS' QUE DE * NOEUDS PAR ELEMENT ET LE N-IEME 'LISTMOTS' * CONTIENT LES NOMS DES COMPOSANTES POUR LE * N-IEME NOEUD D'UN ELEMENT. * IDUAL SEGMENT (E) IDEM POUR LES DUALES * IPDESC ENTIER (S) POINTEUR SUR LE SEGMENT DESCRIPTEUR DE * L'OBJET 'RIGIDITE'. * * LEXIQUE: (ORDRE ALPHABETIQUE) * -------- * * MTEM3 SEGMENT REGROUPEMENT DE POINTEURS SUR DES 'LISTMOTS'. * MEME ORGANISATION QUE "MTEMP3", MAIS LES * 'LISTMOTS' CONTIENNENT LES NOMS DES INCONNUES * DUALES. * NBCOMP ENTIER NOMBRE DE COMPOSANTES POUR UN NOEUD D'ELEMENT. * NBLMOT ENTIER NOMBRE DE 'LISTMOTS' REFERENCES PAR "MTEMP3". * NBMOTT ENTIER NOMBRE TOTAL DE NOMS DE COMPOSANTES DONNES. * * LES AUTRES VARIABLES IMPORTANTES SONT EXPLIQUEES DANS LES MODULES * INCLUS. * * SOUS-PROGRAMMES APPELES: * ------------------------ * * ERREUR. * * AUTEUR, DATE DE CREATION: * ------------------------- * * PASCAL MANIGOT 19 FEVRIER 1985 * * LANGAGE: * -------- * * ESOPE + FORTRAN77 + EXTENSION: CARACTERES MIS DANS DES ENTIERS. * ************************************************************************ * IMPLICIT INTEGER(I-N) -INC PPARAM -INC CCOPTIO -INC CCHAMP -INC SMELEME -INC SMLMOTS -INC SMRIGID * SEGMENT /MTEMP3/ (ILMOTS(0)),MTEM3.MTEMP3 * LOGICAL BADNAM * * * * -- VERIFICATION DES NOMS DE COMPOSANTES DONNES ET ENREGISTREMENT * DES COMPOSANTES DUALES -- * MTEMP3=IINCO SEGACT,MTEMP3 NBLMOT = ILMOTS(/1) * * ON N'A PAS DONNE LES NOMS DES DUALES * ON CHERCHE DANS NOMDD * IF (IDUAL.EQ.0) THEN SEGINI,MTEM3=MTEMP3 * NBMOTT = 0 DO 100 IB100=1,NBLMOT * MLMOTS = ILMOTS(IB100) SEGACT,MLMOTS NBMOTT = NBMOTT + NBMOTS SEGINI,MLMOT1=MLMOTS MTEM3.ILMOTS(IB100) = MLMOT1 * DO 110 IB110=1,NBMOTS * BADNAM = .TRUE. DO 120 IB120=1,LNOMDD BADNAM = .FALSE. * --> SORTIE DE BOUCLE N.120 GOTO 122 END IF 120 CONTINUE * END DO 122 CONTINUE * IF (BADNAM) THEN NUMERR = 197 RETURN END IF * 110 CONTINUE * END DO * SEGDES,MLMOTS SEGDES,MLMOT1 * 100 CONTINUE * END DO * * ON A DONNE LES NOMS DES DUALES * ON NE FAIT AUCUNE VERIF SUR LES NOMS * ELSE MTEM3=IDUAL SEGACT MTEM3 * NBMOTT=0 DO 200 IB200=1,NBLMOT MLMOTS = ILMOTS(IB200) SEGACT,MLMOTS MLMOT1 = MTEM3.ILMOTS(IB200) SEGACT MLMOT1 RETURN ENDIF NBMOTT = NBMOTT + NBMOTS SEGDES MLMOTS SEGDES MLMOT1 200 CONTINUE ENDIF * * -- REMPLISSAGE DU DESCRIPTEUR DE L'OBJET "RIGIDITE" -- * MELEME = IPELEM SEGACT,MELEME NBNN = NUM(/1) SEGDES,MELEME * IF (NBLMOT .EQ. 1) THEN * NLIGRP= NBMOTT * NBNN NLIGRD=NBMOTT * NBNN SEGINI,DESCR MLMOTS = ILMOTS(1) SEGACT,MLMOTS MLMOT1 = MTEM3.ILMOTS(1) SEGACT,MLMOT1 NBCOMP = NBMOTT * DO 500 IB500=1,NBNN III = IB510 + ICONST NOELEP(III) = IB500 NOELED(III) = IB500 510 CONTINUE * END DO 500 CONTINUE * END DO * SEGDES,MLMOTS * ELSE IF (NBLMOT .GT. 1) THEN * IF (NBLMOT .NE. NBNN) THEN NUMERR = 198 RETURN END IF * NLIGRP = NBMOTT NLIGRD=NBMOTT SEGINI,DESCR * ICONST = 0 DO 550 IB550=1,NBNN * MLMOTS = ILMOTS(IB550) SEGACT,MLMOTS MLMOT1 = MTEM3.ILMOTS(IB550) SEGACT,MLMOT1 * III = IB570 + ICONST NOELEP(III) = IB550 NOELED(III) = IB550 570 CONTINUE * END DO * * SEGDES,MLMOTS * 550 CONTINUE * END DO * ELSE * * IL N'A PAS ETE FOURNI DE 'LISTMOTS': MOTERR(1:8) = 'LISTMOTS' NUMERR = 37 RETURN * END IF * IPDESC = DESCR SEGDES,DESCR SEGDES,MTEMP3 IF (IDUAL.EQ.0) THEN SEGSUP MTEM3 ELSE SEGDES MTEM3 ENDIF * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales