Download nominc.eso

Back to the list

   1 : C NOMINC    SOURCE    CHAT      05/01/13    01:58:48     5004           
   2 :       SUBROUTINE NOMINC(NBCMP,INCO,
   3 :      $        NOMCIN,
   4 :      $        IMPR,IRET)
   5 :       IMPLICIT INTEGER(I-N)
   6 :       IMPLICIT REAL*8 (A-H,O-Z)
   7 : C***********************************************************************
   8 : C NOM         : NOMINC
   9 : C PROJET      : Noyau linéaire NLIN
  10 : C DESCRIPTION : On a un nom d'inconnue et un nombre de composantes.
  11 : C               On construit le LISTMOTS des noms des composantes.
  12 : C               Par exemple : NBCMP=1 ; INCO='UN      '
  13 : C                       =>    NOMCIN='1UN     '
  14 : C
  15 : C LANGAGE     : FORTRAN 77 (sauf E/S)
  16 : C AUTEUR      : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  17 : C               mél : gounand@semt2.smts.cea.fr
  18 : C***********************************************************************
  19 : C APPELES          : -
  20 : C APPELE PAR       : NI
  21 : C***********************************************************************
  22 : C ENTREES            : NBCMP, INCO
  23 : C ENTREES/SORTIES    : -
  24 : C SORTIES            : NOMCIN
  25 : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  26 : C***********************************************************************
  27 : C VERSION    : v1, 03/09/99, version initiale
  28 : C HISTORIQUE : v1, 03/09/99, création
  29 : C HISTORIQUE :
  30 : C HISTORIQUE :
  31 : C***********************************************************************
  32 : C Prière de PRENDRE LE TEMPS de compléter les commentaires
  33 : C en cas de modification de ce sous-programme afin de faciliter
  34 : C la maintenance !
  35 : C***********************************************************************
  36 : -INC CCOPTIO
  37 : *
  38 :       INTEGER IMPR,IRET
  39 : *
  40 :       INTEGER NBCMP,INBCMP
  41 :       INTEGER LINCO
  42 :       CHARACTER*(*) INCO
  43 :       CHARACTER*8 INCO8,SPACE8
  44 :       CHARACTER*8 NOMCIN(NBCMP)
  45 : *      
  46 : *     
  47 : * Executable statements
  48 : *
  49 :       IF (IMPR.GT.5) WRITE(IOIMP,*) 'Entrée dans nominc'
  50 : *
  51 : * On impose le nom de l'inconnue à 8 lettres
  52 : *
  53 :       SPACE8='        '
  54 :       LINCO=LEN(INCO)
  55 :       IF (LINCO.GE.8) THEN
  56 :          INCO8=INCO(1:8)
  57 :       ELSEIF (LINCO.GE.0.AND.LINCO.LT.8) THEN
  58 :          INCO8=INCO(1:LINCO)//SPACE8(LINCO+1:8)
  59 :       ELSE
  60 :          WRITE(IOIMP,*) 'Erreur : LINCO.LT.0'
  61 :          GOTO 9999
  62 :       ENDIF
  63 :       IF (NBCMP.LE.0) THEN
  64 :          WRITE(IOIMP,*) 'Nombre de composantes : ',NBCMP,
  65 :      $        ' inférieur à 0'
  66 :          GOTO 9999
  67 :       ELSEIF (NBCMP.LE.1) THEN
  68 :          NOMCIN(1)=INCO8
  69 :       ELSEIF (NBCMP.LE.9) THEN
  70 :          DO 1 INBCMP=1,NBCMP
  71 :             WRITE(NOMCIN(INBCMP),FMT='(I1,A7)') INBCMP,INCO8(1:7)
  72 :  1       CONTINUE
  73 :       ELSEIF (NBCMP.LE.99) THEN
  74 :          DO 2 INBCMP=1,NBCMP
  75 :             WRITE(NOMCIN(INBCMP),FMT='(I2,A6)') INBCMP,INCO8(1:6)
  76 :  2       CONTINUE
  77 :       ELSEIF (NBCMP.LE.999) THEN
  78 :          DO 3 INBCMP=1,NBCMP
  79 :             WRITE(NOMCIN(INBCMP),FMT='(I3,A5)') INBCMP,INCO8(1:5)
  80 :  3       CONTINUE
  81 :       ELSEIF (NBCMP.LE.9999) THEN
  82 :          DO 4 INBCMP=1,NBCMP
  83 :             WRITE(NOMCIN(INBCMP),FMT='(I4,A4)') INBCMP,INCO8(1:4)
  84 :  4       CONTINUE
  85 :       ELSEIF (NBCMP.LE.99999) THEN
  86 :          DO 5 INBCMP=1,NBCMP
  87 :             WRITE(NOMCIN(INBCMP),FMT='(I5,A3)') INBCMP,INCO8(1:3)
  88 :  5       CONTINUE
  89 :       ELSE
  90 :          WRITE(IOIMP,*) 'Nombre de composantes : ',NBCMP,
  91 :      $        ' trop grand...'
  92 :          GOTO 9999
  93 :       ENDIF
  94 : *
  95 : * Normal termination
  96 : *
  97 :       IRET=0
  98 :       RETURN
  99 : *
 100 : * Format handling
 101 : *
 102 : *
 103 : * Error handling
 104 : *
 105 :  9999 CONTINUE
 106 :       IRET=1
 107 :       WRITE(IOIMP,*) 'An error was detected in subroutine nominc'
 108 :       RETURN
 109 : *
 110 : * End of subroutine NOMINC
 111 : *
 112 :       END
 113 : 
 114 :  
 115 :  

© Cast3M 2003 - All rights reserved.
Disclaimer