pressi
C PRESSI SOURCE OF166741 24/10/07 21:15:40 12016 C_______________________________________________________________________ C C OPERATEUR PRESSI C C----------------------------------------------------------------------- C 1ere syntaxe : definition d'un CHPOINT de forces nodales equivalentes C C FP = PRESSI I MASS MODEL I P MAIL I (CARA) C I CHPOT I C I CHAML I C I COQU MODEL I P I I VECT I (CARA) C I CHPOT I I NORM I C I CHAML I C I FISS MODEL I P I VECT POIN CARA C I CHPOT I C C FP CHPOINT CONTENANT LES FORCES NODALES EQUIVALENTES C MODEL OBJET MMODEL ,MASSIF ,COQUE OU FISS SUR LEQUEL C S APPLIQUE LA PRESSION C P VALEUR ALGEBRIQUE DE LA PRESSION C MAIL POUR LES MASSIFS ,OBJET MAILLAGE REPRESENTANT C LA FACE SUR LAQUELLE S'APPLIQUE LA PRESSION C CHPOT CHPOINT CONTENANT LES VALEURS ALGEBRIQUES C DES PRESSIONS AUX NOEUDS C VECT POUR COQUE ET LINESPRING , VECTEUR INDIQUANT LA C DIRECTION DANS LAQUELLE S APPLIQUE LA PRESSION C NORM MOT CLE INDIQUANT QUE LA PRESSION EST POSITIVE C SI ELLE EST PORTEE PAR LA NORMALE POSITIVE C A L ELEMENT C CARA POUR LES MASSIFS EN CONTRAINTES PLANES ET C POUR LES COQUES EPAISSES, MCHAML CONTENANT C LES VALEURS DES EPAISSEURS AUX POINTS C D INTEGRATION C POIN POUR LE LINESPRING , POINT OU SE RAPPORTE C LE VECTEUR C CARA POUR LE LINESPRING ,MCHAML CONTENANT LES VALEURS C DES CARACTERISTIQUES AUX POINTS D INTEGRATION C C C MODIF EBERSOLT MAI 85 PRESSION SUR LES LEVRES DU LINESPRING C C----------------------------------------------------------------------- C 2e syntaxe : definition d'un MCHAML de pression C C CHEL2 = PRES MOD1 | MOT1 VAL1 (MAIL1) ; C | CHEL1 C C MOT1 NOM DE LA COMPOSANTE DE PRESSION C VAL1 VALEUR DE LA PRESSION C MAIL1 MAILLAGE DE LA SURFACE OU ON APPLIQUE LA PRESSION C PAR DEFAUT, TOUTE LA SURFACE DE DEFINITION DU MODELE C C CHAM1 MCHAML DE PRESSION DE NOM DE COMPOSANTE QUELCONQUE C_______________________________________________________________________ SUBROUTINE PRESSI IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMCHPOI -INC SMCHAML -INC SMMODEL -INC SMCOORD PARAMETER (NBTYP=5) CHARACTER*4 MTYPE(NBTYP),MNORM(1) CHARACTER*(4) MOSCAL,MOPOI1 CHARACTER*(LOCHAI) MOTLU DATA MTYPE/'MASS','COQU','FISS','TUYA','SHB8'/ DATA MNORM/'NORM'/ DATA MOSCAL/'SCAL'/,MOPOI1/'POI1'/ segact mcoord IPMODL = 0 IPCHE1 = 0 IPCHM1 = 0 IPCHE2 = 0 IPCHA1 = 0 IRET = 0 C ON LIT UN MOT CLE IF(IERR.NE.0) RETURN C Si pas de mot-cle de la 1ere syntaxe, alors c'est la 2e IF(IMLU.EQ.0) THEN IF(IERR.NE.0) RETURN IF(ILONG .EQ. 0) MOTLU =' ' IMLU =6 ELSE MOTLU =MTYPE(IMLU) ENDIF C ON LIT UN MMODEL IF(IERR.NE.0) RETURN IF(IERR.NE.0) RETURN C ON LIT UN CHAMP POINT (FACULTATIF) IF(IERR.NE.0) RETURN IF(IERR.NE.0) RETURN CASE, IMLU C---------------------------------------------------------------------- WHEN, MASSE C---------------------------------------------------------------------- C ON LIT SOIT UN FLOTTANT ET UN MAILLAGE C SOIT UN CHPOINT (IRETPO.NE.0) C SOIT UN CHAMELEM (IRETEL.NE.0) C IPMAIL=0 P=0.D0 IF(IRETPO.EQ.0) THEN IF(IERR.NE.0) RETURN IF(IRETEL.EQ.1) THEN ELSE IPCHM1 = 0 IF(IERR.NE.0) RETURN P=XXX IF(IERR.NE.0) RETURN IF(IERR.NE.0) RETURN ENDIF ENDIF C IF(IRET.EQ.0.OR.IERR.NE.0) RETURN GOTO 666 C---------------------------------------------------------------------- WHEN, COQUE C---------------------------------------------------------------------- C ON LIT SOIT UN FLOTTANT C SOIT UN CHPOINT (IRETPO.NE.0) C SOIT UN CHAMELEM (IRETEL.NE.0) C P=0.D0 IF(IRETPO.EQ.0) THEN IF(IERR.NE.0) RETURN IF(IRETEL.EQ.1) THEN ELSE IPCHM1 = 0 IF(IERR.NE.0) RETURN P=XXX IPCHE1=0 ENDIF ENDIF C C ON LIT LE MOT CLE NORM SINON ON APPELERA PRORIE QUI C LIRA SES DONNEES C IF(IERR.NE.0) RETURN C ** Comment je fais si je veux donner un vecteur? ** IF(JMLU.EQ.0) THEN ** CALL ERREUR(498) ** IF(IERR.NE.0) RETURN ** RETURN ** ENDIF C C LA LECTURE D'UN CHAMELEM DE CARACTERISTIQUE (FACULTATIVE C EST FAITE DANS FPCOQU C IF(IRET.EQ.0 .OR. IERR.NE.0) RETURN GOTO 666 C---------------------------------------------------------------------- WHEN, FISSURE C---------------------------------------------------------------------- C ON LIT SOIT UN FLOTTANT ,SOIT UN CHPOINT C P=0.D0 IF(IRETPO.EQ.0) THEN IF(IERR.NE.0) RETURN P=XXX IPCHE1=0 ENDIF C C ON LIT UN VECTEUR C IF(IERR.NE.0) RETURN C C ON LIT UN POINT C IF(IERR.NE.0) RETURN C C ON LIT UN CHELEM DE CARACTERISTIQUES C IF(IERR.NE.0) RETURN IF(IERR.NE.0) RETURN C IF (IRET.EQ.0.OR.IERR.NE.0) RETURN GOTO 666 C---------------------------------------------------------------------- WHEN, TUYAU C---------------------------------------------------------------------- C ON LIT UN OBJET CHAMELEM (CARACTERISTIQUES) C IF(IERR.NE.0) RETURN IF(IERR.NE.0) RETURN C IF (IERR.NE.0.OR.IRET.NE.1) RETURN GOTO 666 C---------------------------------------------------------------------- WHEN, COQUES_SHB8 C---------------------------------------------------------------------- C ON LIT UN OBJET CHAMELEM (CARACTERISTIQUES) C IPMAIL=0 P=0.D0 IF(IRETPO.EQ.0) THEN IF(IERR.NE.0) RETURN P = XXX ENDIF C IF(IPTFP.EQ.0) RETURN GOTO 666 C---------------------------------------------------------------------- WHEN, SYNTAXE_2 C----------------------------------------------------------------------C C On extrait du MMODEL la formulation CHARGEMENT PRESSSION C -------------------------------------------------------- MMODEL = IPMODL NSOUS = KMODEL(/1) N1 = NSOUS SEGINI,MMODE1 IMCGP=0 DO isous = 1, NSOUS IMODEL = KMODEL(isous) IF(FORMOD(1).EQ.'CHARGEMENT ') THEN NMAT = MATMOD(/2) IF(ipl.NE.0) THEN IMCGP = IMCGP + 1 MMODE1.KMODEL(IMCGP) = IMODEL ENDIF ENDIF ENDDO C C Si pas de modele chargement pression : erreur ! IF(IMCGP.EQ.0) THEN MOTERR(1:16)='PRESSION ' RETURN ELSE IPMODL=MMODE1 ENDIF C C Cas du MCHALM en argument C ------------------------- IF(MOTLU.EQ.' ') THEN IF(IERR.NE.0) RETURN IF(IERR.NE.0) RETURN IF(IERR.NE.0) RETURN C IF(IRET.EQ.0) THEN RETURN ENDIF IPCHE1=IPCHE2 C C Y' plus qu'a : IF(IERR.NE.0) RETURN C IF(IPCHE2.EQ.0) THEN RETURN ENDIF ELSE C Cas avec MOT1, VAL1... en arguments C ----------------------------------- C C Lecture optionnelle d'un maillage IF(IERR.NE.0) RETURN C C Si un maillage est fourni, on reduit le modele sur le maillage IF(IRET.EQ.1) THEN IF(IERR.NE.0) RETURN C IF(IRET.NE.0) THEN SEGSUP,MMODE1 IPMODL=IRET ENDIF ENDIF C C Lecture du FLOTTANT IF(IERR.NE.0) RETURN C C Sous-programme PRCHL2 : IPCHE2 contient le MCHAML resultat / 0 si echec IF(IERR.NE.0) RETURN C IF(IPCHE2.EQ.0) THEN RETURN ENDIF ENDIF ENDCASE RETURN 666 CONTINUE C LE NUMERO DE L HARMONIQUE EST PRIS EGAL A NIFOUR C POUR TOUTES LES COMPOSANTES DU CHPOINT MCHPOI = IPTFP NSOUPO = IPCHP(/1) NAT =JATTRI(/1) NAT2=MAX(NAT,1) IF(NAT .NE. NAT2)THEN C SEGADJ seulement si necessaire (reduit l'acces ESOPE) NAT=NAT2 SEGADJ MCHPOI ENDIF C Le champ de force nodale est discret. JATTRI(1) = 2 DO 100 IA=1,NSOUPO MSOUPO=IPCHP(IA) segact msoupo*mod DO 101 NC=1,NOHARM(/1) NOHARM(NC)=NIFOUR 101 CONTINUE 100 CONTINUE END
© Cast3M 2003 - Tous droits réservés.
Mentions légales