Download fusprm.eso

Back to the list

   1 : C FUSPRM    SOURCE    MAGN      09/07/30    21:17:07     6458           
   2 :       SUBROUTINE FUSPRM(PM1,PM2,
   3 :      $     PMTOT,
   4 :      $     IMPR,IRET)
   5 :       IMPLICIT INTEGER(I-N)
   6 :       IMPLICIT REAL*8 (A-H,O-Z)
   7 : C***********************************************************************
   8 : C NOM         : FUSPRM
   9 : C PROJET      : Assemblage matrice élémentaire -> matrice Morse
  10 : C DESCRIPTION : Profil Morse (non ordonné) de A + profil Morse (non
  11 : C               ordonné) de B => profil Morse (non ordonné) de (A + B) 
  12 : C
  13 : C               On effectue un ET sur les profils Morses non
  14 : C               ordonnés PM1 et PM2.
  15 : C               Le résultat est dans PMTOT.
  16 : C
  17 : C LANGAGE     : ESOPE
  18 : C AUTEUR      : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  19 : C               mél : gounand@semt2.smts.cea.fr
  20 : C***********************************************************************
  21 : C APPELES          : DIMPMT, CALPMT
  22 : C APPELE PAR       : PRASEM, MAKPMT
  23 : C***********************************************************************
  24 : C ENTREES            : PM1, PM2
  25 : C SORTIES            : PMTOT
  26 : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  27 : C***********************************************************************
  28 : C VERSION    : v1, 13/12/99, version initiale
  29 : C HISTORIQUE : v1, 13/12/99, création
  30 : C HISTORIQUE :
  31 : C HISTORIQUE :
  32 : C***********************************************************************
  33 : C Prière de PRENDRE LE TEMPS de compléter les commentaires
  34 : C en cas de modification de ce sous-programme afin de faciliter
  35 : C la maintenance !
  36 : C***********************************************************************
  37 : *
  38 : -INC CCOPTIO
  39 : -INC SMMATRIK
  40 :       INTEGER NTT,NJA
  41 :       POINTEUR PM1.PMORS
  42 :       POINTEUR PM2.PMORS
  43 :       POINTEUR PMTOT.PMORS
  44 : -INC SMLENTI
  45 :       INTEGER JG
  46 :       POINTEUR IWORK.MLENTI
  47 : *
  48 :       INTEGER IMPR,IRET
  49 : *
  50 :       INTEGER NTTDD2,NTTDDL
  51 :       INTEGER NNZ1,NNZ2,NNZTOT
  52 : *
  53 : * Executable statements
  54 : *
  55 :       IF (IMPR.GT.5) WRITE(IOIMP,*) 'Entrée dans fusprm'
  56 :       SEGACT PM1
  57 :       NTTDDL=PM1.IA(/1)-1
  58 :       NNZ1=PM1.JA(/1)
  59 :       SEGACT PM2
  60 :       NTTDD2=PM2.IA(/1)-1
  61 :       NNZ2=PM2.JA(/1)
  62 :       IF (NTTDDL.NE.NTTDD2) THEN
  63 :          WRITE(IOIMP,*) 'Matrices à fusionner incompatibles...'
  64 :          GOTO 9999
  65 :       ENDIF
  66 : *
  67 : * Effectuons le dimensionnement de PMTOT
  68 : *
  69 :       JG=NTTDDL
  70 :       SEGINI,IWORK
  70 :       CALL DIMPMT(NTTDDL,NNZ1,NNZ2,
  71 :      $     PM1.IA,PM1.JA,PM2.IA,PM2.JA,
  72 :      $     IWORK.LECT,
  73 :      $     NNZTOT)
  74 : *
  75 : * Remplissage de PMTOT
  76 : *
  77 :       NTT=NTTDDL
  78 :       NJA=NNZTOT
  79 :       SEGINI PMTOT
  79 :       CALL CALPMT(NTTDDL,NNZ1,NNZ2,NNZTOT,
  80 :      $     PM1.IA,PM1.JA,PM2.IA,PM2.JA,
  81 :      $     IWORK.LECT,
  82 :      $     PMTOT.IA,PMTOT.JA)
  83 :       IF (IRET.NE.0) GOTO 9999
  84 :       SEGSUP IWORK
  85 :       SEGDES PMTOT
  86 :       SEGDES PM2
  87 :       SEGDES PM1
  88 : *
  89 : * Normal termination
  90 : *
  91 :       IRET=0
  92 :       RETURN
  93 : *
  94 : * Format handling
  95 : *
  96 : *
  97 : * Error handling
  98 : *
  99 :  9999 CONTINUE
 100 :       IRET=1
 101 :       WRITE(IOIMP,*) 'An error was detected in subroutine fusprm'
 102 :       RETURN
 103 : *
 104 : * End of subroutine FUSPRM
 105 : *
 106 :       END
 107 : 
 108 :  
 109 :  
 110 :  
 111 :  

© Cast3M 2003 - All rights reserved.
Disclaimer