1 : C INCTYP SOURCE GOUNAND 11/07/21 21:15:20 7046 2 : SUBROUTINE INCTYP(MATRIK, 3 : $ ATYP, 4 : $ IMPR,IRET) 5 : IMPLICIT INTEGER(I-N) 6 : IMPLICIT REAL*8 (A-H,O-Z) 7 : C*********************************************************************** 8 : C NOM : INCTYP 9 : C DESCRIPTION : 10 : C Ce sp initialise le vecteur inconnue primale 11 : C (i.e. x de Ax=b) avec un chpoint d'inconnues primales. 12 : C On a en vue une méthode itérative de résolution. 13 : C 14 : C Ce sp est quasiment identique à mesmbr.eso. 15 : C C'est une interface à ch2vec. 16 : C 17 : C 18 : C LANGAGE : ESOPE 19 : C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/TTMF) 20 : C mél : gounand@semt2.smts.cea.fr 21 : C*********************************************************************** 22 : C APPELE : CH2VEC 23 : C*********************************************************************** 24 : C ENTREES : MATRIK, MCHINI, IMPR 25 : C ENTREES/SORTIES : - 26 : C SORTIES : INCX, IRET 27 : C CODE RETOUR (IRET) : 0 si ok 28 : C <0 si problème 29 : C MATRIK : pointeur sur segment MATRIK de l'include SMMATRIK 30 : C on pioche dedans les informations nécessaires 31 : C (numérotations, inconnues, support géométriques) 32 : C pour effectuer la conversion MCHINI->INCX. 33 : C MCHINI : pointeur sur segment MCHPOI de l'include SMCHPOI 34 : C chpoint d'initialisation du vecteur INCX 35 : C IMPR : niveau d'impression 36 : C INCX : pointeur sur segment IZA de l'include SMMATRIK 37 : C vecteur x initial pour la résolution de Ax=b. 38 : C Il est initialisé à 0 si MCHINI est nul 39 : C sinon les valeurs non nulles de MCHINI 40 : C correspondant à des inconnues primales sont 41 : C chargées dans INCX. 42 : C Les valeurs non nulles de MCHINI NE correspondant 43 : C PAS à des inconnues primales donnent lieu à 44 : C l'émission d'un warning (cf. CH2VEC). 45 : C*********************************************************************** 46 : C VERSION : v1, 01/04/98, version initiale 47 : C HISTORIQUE : v1, 01/04/98, création 48 : C HISTORIQUE : 49 : C HISTORIQUE : 50 : C*********************************************************************** 51 : C Prière de PRENDRE LE TEMPS de compléter les commentaires 52 : C en cas de modification de ce sous-programme afin de faciliter 53 : C la maintenance ! 54 : C*********************************************************************** 55 : -INC CCOPTIO 56 : -INC SMMATRIK 57 : POINTEUR INCX.IZA 58 : -INC SMLENTI 59 : POINTEUR ATYP.MLENTI 60 : C 61 : IRET=0 62 : SEGACT MATRIK 63 : C Initialisation de l'inconnue à 0 64 : JG=KNTTP 65 : SEGINI ATYP 66 : NBVA=KNTTP 67 : MINC=KMINCP 68 : SEGACT MINC 69 : NBI=LISINC(/2) 70 : NPT=NPOS(/1)-1 71 : IDMAT=KIDMAT(1) 72 : SEGACT IDMAT 73 : DO IBI=1,NBI 74 : DO IPT=1,NPT 75 : IF (MPOS(IPT,IBI).NE.0) THEN 76 : ATYP.LECT(NUAN(NPOS(IPT)+ 77 : $ MPOS(IPT,IBI)-1))=IBI 78 : ENDIF 79 : ENDDO 80 : ENDDO 81 : SEGDES IDMAT 82 : SEGDES MINC 83 : C 84 : IF (IMPR.GT.5) THEN 85 : WRITE(IOIMP,*) 'inctyp.eso : création du pointeur ATYP=',ATYP 86 : IF (IMPR.GT.7) THEN 87 : WRITE(IOIMP,*) 'ATYP(1..',JG,')= ' 88 : WRITE(IOIMP,1002)(ATYP.LECT(II),II=1,JG) 89 : ENDIF 90 : ENDIF 91 : C 92 : SEGDES ATYP 93 : SEGDES MATRIK 94 : * 95 : * Normal termination 96 : * 97 : RETURN 98 : * 99 : * Format handling 100 : * 101 : 1002 FORMAT(10(1X,I7)) 102 : * 103 : * Error handling 104 : * 105 : 9999 CONTINUE 106 : WRITE(IOIMP,*) 'An error was detected in inctyp.eso' 107 : RETURN 108 : * 109 : * End of INCTYP 110 : * 111 : END 112 : 113 : 114 : 115 : 116 : 117 : 118 : 119 : 120 : 121 :
© Cast3M 2003 - All rights reserved.
Disclaimer