chalvs
C CHALVS SOURCE CB215821 24/04/12 21:15:14 11897 C======================================================================= C= C H A L V S = C= ----------- = C= = C= Fonction : = C= ---------- = C= = C= Parametres : (E)=Entree (S)=Sortie = C= ------------ = C= IPMODE (E) Pointeur sur le segment MMODEL de la structure = C= IFORMU (E) Formulation associee au MMODEL de la structure = C= ITYPEF (E) Type(Famille) des EF du MMODEL de la structure = C= IPCHPO (E) Pointeur sur le CHPOINT de sources (puits) aux = C= noeuds de la structure (champ variable) = C= S1 (E) Valeur de la source (FLOTTANT = champ constant) = C= IPGEOM (E) Pointeur sur le MAILLAGE sur lequel s'applique S1 = C= IPCHEL (E) Pointeur sur le segment MCHAML de sources donnees = C= en chaque element de la structure (champ variable) = C= IPCHSO (S) Pointeur sur le champ de sources volumiques = C= ISUPSO (S) Support du champ de sources volumiques = C======================================================================= & IPCHSO,ISUPSO) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC PPARAM -INC CCOPTIO c* -INC SMMODEL c* -INC SMCHPOI IPCHSO = 0 ISUPSO = 0 C 1 - Sources sous forme d'un MCHAML C Determination du support : C ======================================================= IF (IPCHEL.NE.0) THEN IPCHSO = IPCHEL IF (IERR.NE.0 .OR. iok.EQ.9999) THEN IPCHSO = 0 RETURN ENDIF ISUP_Z = ISUPSO IPCH_Z = IPCHSO C En massif, on passe aux points d'integration (MASSE ou GAUSS C selon la formulation) si le champ est aux noeuds ou au gravite C Si le champ a un autre support que NOEUD ou GRAVITE, on ne change C pas le support a MASSE pour l'instant. IF (ITYPEF.EQ.1) THEN IF (ISUPSO.EQ.1 .OR. ISUPSO.EQ.2) THEN C* Rappel : diffusion = thermique (en attendant retour a "mecanique") C* IF (IFORMU.EQ.1 .OR. IFORMU.EQ.2) THEN IF (IFORMU.EQ.1 .OR. IFORMU.EQ.2 .OR. IFORMU.EQ.3) THEN ISUPSO = 6 ELSE c* Avant on mettait au support RIGIDITE : ISUPSO = 3 c* Maintenant on met au support MASSE : ISUPSO = 4 ISUPSO = 4 ENDIF ENDIF * Pour l'instant, si pas massif on passe aux noeuds comme avant ELSE IF (ISUPSO.NE.1) THEN ISUPSO = 1 ENDIF ENDIF IF (ISUP_Z.NE.ISUPSO) THEN IF (IERR.NE.0 .OR. iok.NE.0) THEN IPCHSO = 0 RETURN ENDIF ENDIF ELSE C 2 - Sources constantes (FLOTTANT) sur un MAILLAGE C Sources mises sous forme d'un CHPOINT puis C Transfert du CHPOINT en MCHAML au support adhoc C ======================================================= C Les composantes sont fonction de la formulation ! IF (IPGEOM.NE.0) THEN IF (ITYPEF.EQ.2) THEN C* ELSE IF (ITYPEF.EQ.1 .OR. ITYPEF.EQ.3) THEN ELSE ENDIF CALL MANUCH IF (IERR.NE.0) RETURN IF (IERR.NE.0) RETURN IPCHPO = IPCH_Z C 3 - Sources sous forme d'un CHPOINT C Transfert du CHPOINT en MCHAML au support adhoc C ======================================================= ELSE IPCH_Z = 0 ENDIF C Changement en MCHAML au support adapte du modele (commun a 2 et 3) : C* En fait on devrait directement creer le MCHAML sans passer par le CHPOINT... IF (ITYPEF.EQ.1) THEN C* Rappel : diffusion = thermique (en attendant retour a "mecanique") IF (IFORMU.EQ.1 .OR. IFORMU.EQ.2 .OR. IFORMU.EQ.3) THEN ISUPSO = 6 ELSE c* On met au support MASSE : ISUPSO = 4 (integration plus "precise") C* Avant on prenait RIGIDITE : ISUPSO = 3 ISUPSO = 4 ENDIF ELSE ISUPSO = 1 ENDIF IF (IERR.NE.0) RETURN ENDIF RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales