1 : C OPENMM SOURCE JC220346 13/12/16 21:16:05 7884 2 : C SORMAT SOURCE JC220346 12/06/18 21:15:25 7403 3 : ************************************************************************ 4 : * NOM : openmm.eso 5 : * DESCRIPTION : Ouverture d'un fichier au format MATRIX MARKET (.mm) 6 : * REFERENCES : - The Matrix Market Exchange Formats: Initial Design, 7 : * Boisvert R. F., Pozo R., Remington K. A. (Dec 1996) 8 : * - The Rutherford-Boeing Sparse Matrix Collection, 9 : * Duff I. S., Grimes R. G., Lewis G. L. (Sep 1997) 10 : ************************************************************************ 11 : * HISTORIQUE : 4/12/2012 : JCARDO : création de la subroutine 12 : * HISTORIQUE : 13 : * HISTORIQUE : 14 : ************************************************************************ 15 : * Prière de PRENDRE LE TEMPS DE COMPLÉTER LES COMMENTAIRES 16 : * en cas de modification de ce sous-programme afin de faciliter 17 : * la maintenance ! 18 : ************************************************************************ 19 : * APPELÉ PAR : sormat.eso 20 : ************************************************************************ 21 : 22 : SUBROUTINE OPENMM(CHNOMF,CHTYPE,CHTITR, 23 : & IVA1,IVA2,IVA3, 24 : & CVA1) 25 : 26 : IMPLICIT INTEGER(I-N) 27 : IMPLICIT REAL*8(A-H,O-Z) 28 : 29 : EXTERNAL LONG 30 : 31 : -INC CCOPTIO 32 : 33 : CHARACTER*(*) CHNOMF,CHTYPE,CHTITR,CVA1 34 : CHARACTER*8 CHA8 35 : 36 : 37 : * ==================== 38 : * OUVERTURE DU FICHIER 39 : * ==================== 40 : 41 : OPEN(UNIT = IOPER , 42 : & STATUS = 'UNKNOWN' , 43 : & FILE = CHNOMF(1:LONG(CHNOMF))//'.'// 44 : & CHTYPE(1:LONG(CHTYPE))//'.mm', 45 : & IOSTAT = IOS , 46 : & FORM = 'FORMATTED' ) 47 : 48 : 49 : * ==================== 50 : * ÉCRITURE DE L'ENTETE 51 : * ==================== 52 : 53 : * Ligne d'entête (OBLIGATOIRE) 54 : WRITE(UNIT=IOPER,FMT='(A,A)') 55 : .'%%MatrixMarket ',CVA1 56 : 57 : * Nom du programme (commentaire facultatif) 58 : WRITE(UNIT=IOPER,FMT='("%",/,A,/,A)') 59 : .'% PROGRAMME', 60 : .'% CASTEM/SORMAT' 61 : 62 : * Utilisateur (commentaire facultatif) 62 : CALL GIBNAM(CHA8) 62 : CALL NETCHA(CHA8) 63 : WRITE(UNIT=IOPER,FMT='("%",/,A,/,A)') 64 : .'% UTILISATEUR', 65 : .'% '//CHA8(1:LONG(CHA8)) 66 : 67 : * Date (commentaire facultatif) 67 : CALL GIBDAT(IJOUR,IMOIS,IANNEE) 68 : IANNEE=MOD(IANNEE,100)+2000 69 : WRITE(UNIT=IOPER,FMT='("%",/,A,/,A,I2.2,A1,I2.2,A1,I4)') 70 : .'% DATE', 71 : .'% ',IJOUR,'/',IMOIS,'/',IANNEE 72 : 73 : * Type de contenu 74 : WRITE(UNIT=IOPER,FMT='("%",/,A)') 75 : .'% CONTENU' 76 : WRITE(UNIT=IOPER,FMT='(A,A)') 77 : .'% ',CHTYPE(1:LONG(CHTYPE)) 78 : 79 : * Titre (commentaire facultatif) 80 : WRITE(UNIT=IOPER,FMT='("%",/,A)') 81 : .'% TITRE' 82 : LC=LONG(CHTITR) 83 : IF (LC.GT.0) THEN 84 : WRITE(UNIT=IOPER,FMT='(A,A)') 85 : . '% ',CHTITR(1:LC) 86 : ELSE 87 : WRITE(UNIT=IOPER,FMT='(A,A)') 88 : . '% ',CHNOMF(1:LONG(CHNOMF)) 89 : ENDIF 90 : 91 : * Nb de lignes et de colonnes + nb de valeurs non nulles si besoin 92 : IF (IVA3.EQ.0) THEN 93 : WRITE(IOPER,FMT='(I6,1X,I6)') IVA1,IVA2 94 : ELSE 95 : WRITE(IOPER,FMT='(I6,2(1X,I6))') IVA1,IVA2,IVA3 96 : ENDIF 97 : 98 : 99 : 100 : RETURN 101 : 102 : END 103 :
© Cast3M 2003 - All rights reserved.
Disclaimer