Download calpmt.eso

Back to the list

   1 : C CALPMT    SOURCE    CHAT      05/01/12    21:47:56     5004           
   2 :       SUBROUTINE CALPMT(NTTDDL,NNZA,NNZB,NNZC,
   3 :      $     IA,JA,IB,JB,
   4 :      $     IWORK,
   5 :      $     IC,JC)
   6 :       IMPLICIT INTEGER(I-N)
   7 :       IMPLICIT REAL*8 (A-H,O-Z)
   8 : C***********************************************************************
   9 : C NOM         : CALPMT
  10 : C DESCRIPTION : Profil Morse (non ordonné) de A + profil Morse (non
  11 : C               ordonné) de B + dimension (NNZ) du profil Morse de (A +
  12 : C               B)  => Profil Morse non ordonné de (A + B).
  13 : C
  14 : C LANGAGE     : ESOPE
  15 : C AUTEUR      : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  16 : C               mél : gounand@semt2.smts.cea.fr
  17 : C***********************************************************************
  18 : C APPELE PAR       : FUSPRM
  19 : C***********************************************************************
  20 : C ENTREES            : NTTDDL, NNZA, NNZB, NNZC
  21 : C                      IA, JA, IB, JB
  22 : C ENTREES/SORTIES    : IWORK
  23 : C SORTIES            : IC, JC
  24 : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  25 : C***********************************************************************
  26 : C VERSION    : v1, 21/12/99, version initiale
  27 : C HISTORIQUE : v1, 21/12/99, création
  28 : C HISTORIQUE :
  29 : C HISTORIQUE :
  30 : C***********************************************************************
  31 : C Prière de PRENDRE LE TEMPS de compléter les commentaires
  32 : C en cas de modification de ce sous-programme afin de faciliter
  33 : C la maintenance !
  34 : C***********************************************************************
  35 : *
  36 :       INTEGER NTTDDL,NNZA,NNZB,NNZC
  37 :       INTEGER IA(NTTDDL+1)
  38 :       INTEGER JA(NNZA)
  39 :       INTEGER IB(NTTDDL+1)
  40 :       INTEGER JB(NNZB)
  41 : *
  42 :       INTEGER IWORK(NTTDDL)
  43 : *
  44 :       INTEGER IC(NTTDDL+1)
  45 :       INTEGER JC(NNZC)
  46 : *
  47 :       INTEGER JNZA,JNZB,JNZC,INZC
  48 :       INTEGER ITTDDL
  49 :       INTEGER JACOL,JBCOL
  50 : *     
  51 : * Executable statements
  52 : *
  53 :       JNZC=0
  54 :       IC(1)=1
  55 : *
  56 : * Calculons le nombre de termes non nuls sur chaque ligne de C
  57 : *
  58 :       DO 1 ITTDDL=1,NTTDDL
  59 : * Parcourons la ligne de A
  60 :          DO 12 JNZA=IA(ITTDDL),IA(ITTDDL+1)-1
  61 :             JACOL=JA(JNZA)
  62 :             JNZC=JNZC+1
  63 :             JC(JNZC)=JACOL
  64 :             IWORK(JACOL)=JNZC
  65 :  12      CONTINUE
  66 : * Parcourons la ligne de B
  67 :          DO 14 JNZB=IB(ITTDDL),IB(ITTDDL+1)-1
  68 :             JBCOL=JB(JNZB)
  69 :             IF (IWORK(JBCOL).EQ.0) THEN
  70 :                JNZC=JNZC+1
  71 :                JC(JNZC)=JBCOL
  72 :                IWORK(JBCOL)=JNZC
  73 :             ENDIF
  74 :  14      CONTINUE
  75 : * Remise à zéro du segment de travail 
  76 :          DO 16 INZC=IC(ITTDDL),JNZC
  77 :             IWORK(JC(INZC))=0
  78 :  16      CONTINUE
  79 :          IC(ITTDDL+1)=JNZC+1
  80 :  1    CONTINUE
  81 : *
  82 : * Normal termination
  83 : *
  84 :       RETURN
  85 : *
  86 : * Format handling
  87 : *
  88 : *
  89 : * End of subroutine CALPMT
  90 : *
  91 :       END
  92 :  
  93 :  

© Cast3M 2003 - All rights reserved.
Disclaimer