Télécharger mkmpos.eso

Retour à la liste

Numérotation des lignes :

mkmpos
  1. C MKMPOS SOURCE CHAT 05/01/13 01:46:19 5004
  2. SUBROUTINE MKMPOS(NBINC,NPOMEL,NTOGPO,NTOTPO,NTOTIN,
  3. $ KRINC,MELEME,KRSPGT,
  4. $ MPOS,
  5. $ IMPR,IRET)
  6. IMPLICIT INTEGER(I-N)
  7. IMPLICIT REAL*8 (A-H,O-Z)
  8. C***********************************************************************
  9. C NOM : MKMPOS
  10. C PROJET : Noyau linéaire NLIN
  11. C DESCRIPTION : On complète un tableau de correspondance (point support,
  12. C nom d'inconnue scalaire) <-> (numéro de ddl)
  13. C
  14. C On complète le tableau de repérage des inconnues KMINCT
  15. C (segment de type MPOS dans le programme appelant) avec
  16. C les informations données en entrée :
  17. C KRINC : indices des composantes ds le tableau des
  18. C composantes.
  19. C MELEME : liste des numéros globaux de points sur
  20. C lesquels il y a des inconnues.
  21. C KRSPGT : repérage des points ds le tableau des points.
  22. C
  23. C
  24. C LANGAGE : FORTRAN 77 (sauf E/S)
  25. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  26. C mél : gounand@semt2.smts.cea.fr
  27. C***********************************************************************
  28. C APPELE PAR : PRASEM
  29. C***********************************************************************
  30. C ENTREES : NBINC, NPOMEL, NTOGPO,NTOTPO,NTOTIN
  31. C KRINC, MELEME, KRSPGT
  32. C ENTREES/SORTIES : MPOS
  33. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  34. C***********************************************************************
  35. C VERSION : v1, 05/10/99, version initiale
  36. C HISTORIQUE : v1, 05/10/99, création
  37. C HISTORIQUE :
  38. C HISTORIQUE :
  39. C***********************************************************************
  40. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  41. C en cas de modification de ce sous-programme afin de faciliter
  42. C la maintenance !
  43. C***********************************************************************
  44. -INC PPARAM
  45. -INC CCOPTIO
  46. INTEGER NBINC,NPOMEL,NTOGPO,NTOTPO,NTOTIN
  47. INTEGER KRINC(NBINC)
  48. INTEGER MELEME(NPOMEL)
  49. INTEGER KRSPGT(NTOGPO)
  50. INTEGER MPOS(NTOTPO,NTOTIN+1)
  51. *
  52. INTEGER IMPR,IRET
  53. *
  54. LOGICAL LEXIST
  55. INTEGER IPOMEL,IINC
  56. INTEGER IPOMCT,IINCCT
  57. INTEGER NPOINC
  58. *
  59. * Executable statements
  60. *
  61. IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans mkmpos'
  62. DO 1 IPOMEL=1,NPOMEL
  63. IPOMCT=KRSPGT(MELEME(IPOMEL))
  64. IF (IPOMCT.EQ.0) THEN
  65. WRITE(IOIMP,*)
  66. $ 'Un point de KSPGP ou KSPGD n''existe pas '
  67. $ ,'dans KSPGT...'
  68. ENDIF
  69. * On cherche si l'inconnue n'existe pas déjà dans MPOS
  70. DO 12 IINC=1,NBINC
  71. IINCCT=KRINC(IINC)
  72. LEXIST=(MPOS(IPOMCT,IINCCT).NE.0)
  73. * Sinon, on la rajoute...
  74. IF (.NOT.LEXIST) THEN
  75. NPOINC=MPOS(IPOMCT,NTOTIN+1)+1
  76. MPOS(IPOMCT,NTOTIN+1)=NPOINC
  77. MPOS(IPOMCT,IINCCT) =NPOINC
  78. ENDIF
  79. 12 CONTINUE
  80. 1 CONTINUE
  81. *
  82. * Normal termination
  83. *
  84. IRET=0
  85. RETURN
  86. *
  87. * Format handling
  88. *
  89. *
  90. * Error handling
  91. *
  92. 9999 CONTINUE
  93. IRET=1
  94. WRITE(IOIMP,*) 'An error was detected in subroutine mkmpos'
  95. RETURN
  96. *
  97. * End of subroutine MKMPOS
  98. *
  99. END
  100.  
  101.  
  102.  
  103.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales