1 : C MACHIN SOURCE GOUNAND 11/05/25 21:15:25 6980 2 : SUBROUTINE MACHIN() 3 : IMPLICIT INTEGER(I-N) 4 : IMPLICIT REAL*8 (A-H,O-Z) 5 : C*********************************************************************** 6 : C NOM : MACHIN 7 : C DESCRIPTION : Changement de nom d'inconnues primales et duales 8 : C d'une matrice (type RIGIDITE ou MATRIK) 9 : C 10 : C 11 : C LANGAGE : ESOPE 12 : C AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) 13 : C mél : gounand@semt2.smts.cea.fr 14 : C*********************************************************************** 15 : C APPELES : 16 : C APPELES (E/S) : LIROBJ 17 : C APPELES (BLAS) : 18 : C APPELES (CALCUL) : 19 : C APPELE PAR : 20 : C*********************************************************************** 21 : C SYNTAXE GIBIANE : 22 : C MATRIK2 = 'KOPS' 'CHANINCO' MATRIK1 23 : C LISTMOT1 LISTMOT2 LISTMOT3 LISTMOT4 ; 24 : C ENTREES : EMTK 25 : C ENTREES/SORTIES : - 26 : C SORTIES : SMTK 27 : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé 28 : C*********************************************************************** 29 : C VERSION : v1, 04/07/2002, version initiale 30 : C HISTORIQUE : v1, 04/07/2002, création 31 : C HISTORIQUE : 32 : C HISTORIQUE : 33 : C*********************************************************************** 34 : C Prière de PRENDRE LE TEMPS de compléter les commentaires 35 : C en cas de modification de ce sous-programme afin de faciliter 36 : C la maintenance ! 37 : C*********************************************************************** 38 : -INC CCOPTIO 39 : -INC SMLMOTS 40 : POINTEUR IEPRI.MLMOTS 41 : POINTEUR IEDUA.MLMOTS 42 : POINTEUR ISPRI.MLMOTS 43 : POINTEUR ISDUA.MLMOTS 44 : * 45 : CHARACTER*8 MONTYP 46 : * 47 : * Executable statements 48 : * 49 : * 50 : * Lecture des arguments 51 : * 51 : CALL LIROBJ('LISTMOTS',IEPRI,1,IRETOU) 52 : IF (IERR.NE.0) RETURN 52 : CALL LIROBJ('LISTMOTS',ISPRI,1,IRETOU) 53 : IF (IERR.NE.0) RETURN 53 : CALL LIROBJ('LISTMOTS',IEDUA,1,IRETOU) 54 : IF (IERR.NE.0) RETURN 54 : CALL LIROBJ('LISTMOTS',ISDUA,1,IRETOU) 55 : IF (IERR.NE.0) RETURN 55 : CALL QUETYP(MONTYP,0 ,IRETOU) 56 : * WRITE(IOIMP,*) 'MONTYP=',MONTYP 57 : IF (IRETOU.EQ.0) THEN 57 : CALL ERREUR(533) 58 : RETURN 59 : ENDIF 60 : * 61 : IF (MONTYP.EQ.'MATRIK ') THEN 61 : CALL LIROBJ('MATRIK ',IMAT,1,IRETOU) 62 : IF (IERR.NE.0) RETURN 62 : CALL MACHIK(IMAT,IEPRI,ISPRI,IEDUA,ISDUA,IMAT2) 63 : IF (IERR.NE.0) RETURN 63 : CALL ECROBJ('MATRIK ',IMAT2) 64 : ELSEIF (MONTYP.EQ.'RIGIDITE') THEN 64 : CALL LIROBJ('RIGIDITE',IMAT,1,IRETOU) 65 : IF (IERR.NE.0) RETURN 66 : * Autorise le changement de nom des multiplicateurs de Lagrange 66 : CALL ECRCHA('MULT') 66 : CALL ECROBJ('LISTMOTS',ISDUA) 66 : CALL ECROBJ('LISTMOTS',IEDUA) 66 : CALL ECROBJ('LISTMOTS',ISPRI) 66 : CALL ECROBJ('LISTMOTS',IEPRI) 66 : CALL ECROBJ('RIGIDITE',IMAT) 66 : CALL ECRCHA('INCO') 66 : CALL PRCHAN 67 : ELSE 68 : MOTERR(1:8)=MONTYP 68 : CALL ERREUR(39) 69 : ENDIF 70 : * 71 : * Normal termination 72 : * 73 : RETURN 74 : * 75 : * Format handling 76 : * 77 : * 78 : * End of subroutine MACHIN 79 : * 80 : END 81 : 82 : 83 : 84 : 85 : 86 : 87 :
© Cast3M 2003 - All rights reserved.
Disclaimer