1 : C MEXINI SOURCE MAGN 09/07/30 21:19:24 6458 2 : SUBROUTINE MEXINI(MATRIK,MCHINI, 3 : $ INCX, 4 : $ IMPR,IRET) 5 : IMPLICIT INTEGER(I-N) 6 : IMPLICIT REAL*8 (A-H,O-Z) 7 : C*********************************************************************** 8 : C NOM : MEXINI 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 SMCHPOI 59 : POINTEUR MCHINI.MCHPOI 60 : -INC SMELEME 61 : POINTEUR KISPG.MELEME 62 : C 63 : IRET=0 64 : SEGACT MATRIK 65 : C Initialisation de l'inconnue à 0 66 : NBVA=KNTTP 67 : SEGINI INCX 68 : IF(MCHINI.NE.0) THEN 69 : C 70 : C On transforme le chpoint en vecteur 71 : C 72 : C Entrées 73 : MCHPOI=MCHINI 74 : MINC =KMINCP 75 : KISPG =KISPGP 76 : IDMAT =KIDMAT(1) 77 : C Sortie : INCX 78 : C 78 : CALL CH2VEC(MCHPOI,MINC,KISPG,IDMAT,INCX,IMPR,IRET) 79 : IF (IRET.NE.0) GOTO 9999 80 : C 81 : ENDIF 82 : C 83 : IF (IMPR.GT.5) THEN 84 : WRITE(IOIMP,*) 'mexini.eso : création du pointeur INCX=',INCX 85 : WRITE(IOIMP,*) ' a partir du CHPOINT MCHINI=',MCHINI 86 : IF (IMPR.GT.7) THEN 87 : WRITE(IOIMP,*) 'INCX(1..',NBVA,')= ' 88 : WRITE(IOIMP,1002)(INCX.A(II),II=1,NBVA) 89 : ENDIF 90 : ENDIF 91 : C 92 : SEGDES INCX 93 : SEGDES MATRIK 94 : * 95 : * Normal termination 96 : * 97 : RETURN 98 : * 99 : * Format handling 100 : * 101 : 1002 FORMAT(10(1X,1PE11.4)) 102 : * 103 : * Error handling 104 : * 105 : 9999 CONTINUE 106 : WRITE(IOIMP,*) 'An error was detected in mexini.eso' 107 : RETURN 108 : * 109 : * End of MEXINI 110 : * 111 : END 112 : 113 : 114 : 115 : 116 : 117 : 118 : 119 : 120 :
© Cast3M 2003 - All rights reserved.
Disclaimer