lekmof
C LEKMOF SOURCE CB215821 20/11/25 13:33:34 10792 &MUG,MCHELG) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C*********************************************************************** C C Ce sous programme lit le NUième coefficient d'un opérateur, stocké C à l'indice ARGnu de la table KIZX de pointeur MTABX associée à C l'opérateur en cours de traitement. C Le coefficient est de type ENTIER, FLOTTANT, POINT, CHPOINT ou MOT. C Dans le cas MOT, on récupère la donnée se trouvant à l'indice MOT C de la table INCO. C Ce Sp lit lit le coefficient et rend un MCHAML quoi qu'il arrive C Le MCHAML en retour est jetable il est calcule aux pts d'integrations C---------------------------------------------------------------------- C HISTORIQUE : 20/10/01 : Création C C HISTORIQUE : C C C--------------------------- C Paramètres Entrée/Sortie : C--------------------------- C C E/ MTABD : Objet model de la zone C E/ NU : Rang du coefficient à aller chercher (ENTIER) C E/ MTABX : Pointeur de la table contenant le coefficient C E/ KINC : Pointeur de la table INCO dans laquelle on va chercher C les valeurs des indices lorsque ceux-ci sont des MOTS. C E/ IHV=0 CHPOINT SCALAIRE ou FLOTTANT C IHV=1 CHPOINT VECTEUR ou POINT C E/ MUG=0 On rend le coefficient tel quel C E/ MUG=1 Si le coefficient est un CHPOINT On retourne en plus le gradient C /S MCHELM : Chamelem pts d'intégration pour le COEF C /S MCHELG : Chamelem pts d'intégration pour le Gradient du coef (=0 sinon) C E/ KPOIND : ENTIER type du support GÉométrique DUAL du shéma C d'intégration => pour la création du Chamelem C---------------------------------------------------------------------- C KPOIN = 0->SOMMET 1-> FACE 2-> CENTRE 3-> CENTREP0 4-> CENTREP1 5-> MSOMMET C---------------------------------------------------------------------- C************************************************************************ -INC SMCHAML -INC SMCHPOI -INC SMELEME -INC SMCOORD -INC PPARAM -INC CCOPTIO -INC CCGEOME CHARACTER*8 TYPE,NOM,NARG,TYPM LOGICAL LOGI DIMENSION XPOI(3) C***************************************************************************** CLEKMOF C C- Récupération du TYPE du NUième argument de l'opérateur C C write(6,*)' DEBUT LEKMOF NU=',NU IF (NU.LE.0 .OR. NU.GE.100) THEN INTERR(1) = NU INTERR(2) = 1 INTERR(3) = 99 RETURN ENDIF IF (NU.LE.9) THEN WRITE(NARG,FMT='(A3,I1)')'ARG',Nu ELSE WRITE(NARG,FMT='(A3,I2)')'ARG',Nu ENDIF TYPE = ' ' c write(6,*)' AVANT ACCTAB type=',type,NARG(1:LC),nom & TYPE ,IVAL,COEF, NOM,LOGI,MCHPOI) c write(6,*)' TYPE,COEF,MCHPOI,IVAL=',TYPE,COEF,MCHPOI,IVAL IF(TYPE.EQ.'ENTIER')COEF=FLOAT(IVAL) IF(TYPE.EQ.'MOT')THEN TYPE=' ' c write(6,*)' NOM=',NOM,' TYPE,ip=',TYPE,MCHPOI IF(TYPE.EQ.'ENTIER')THEN COEF=FLOAT(IVAL) ELSEIF(TYPE.EQ.'FLOTTANT')THEN ENDIF ENDIF IF(TYPE.EQ.'POINT')THEN IP=MCHPOI XPOI(1) = XCOOR((IP-1)*(IDIM+1) +1) XPOI(2) = XCOOR((IP-1)*(IDIM+1) +2) IF (IDIM.EQ.3) XPOI(3) = XCOOR((IP-1)*(IDIM+1) +3) ENDIF c write(6,*)'TYPE=',TYPE IF(TYPE.NE.'FLOTTANT'.AND.TYPE.NE.'ENTIER'.AND. & TYPE.NE.'CHPOINT '.AND.TYPE.NE.'MCHAML '.AND.IHV.EQ.0)THEN C On ne veut pas d'objet de type %m1:8 MOTERR(1: 8) = TYPE RETURN ENDIF IF(TYPE.NE.'POINT'.AND. & TYPE.NE.'CHPOINT '.AND.TYPE.NE.'MCHAML '.AND.IHV.EQ.1)THEN C On ne veut pas d'objet de type %m1:8 MOTERR(1: 8) = TYPE RETURN ENDIF TYPM=' ' &MUG,MCHELG) c write(6,*)' FIN LEKMOF MUG=',MUG RETURN 1001 FORMAT(20(1X,I5)) 1002 FORMAT(10(1X,1PE11.4)) END
© Cast3M 2003 - Tous droits réservés.
Mentions légales