Télécharger arpsoq.eso

Retour à la liste

Numérotation des lignes :

arpsoq
  1. C ARPSOQ SOURCE BP208322 20/02/06 21:15:12 10512
  2. SUBROUTINE ARPSOQ (SIGMA,CHOIX,QUAD,NVAL,IPRIGI,IPMASS,IPAMOR,
  3. & LAGDUA,NK,NM,INVER,SYM,CHOLE,IPSOLU,EPSI)
  4.  
  5. ***********************************************************************
  6. *
  7. * A R P S O Q
  8. *
  9. * FONCTION:
  10. * ---------
  11. *
  12. * SOLVEUR DU PROBLEME QUADRATIQUE AUX VALEURS PROPRES AVEC LA
  13. * METHODE IRAM (METHODE D'ARNOLDI AVEC REDEMARRAGE IMPLICITE)
  14. *
  15. *
  16. * PARAMETRES: (E)=ENTREE (S)=SORTIE
  17. * -----------
  18. *
  19. * SIGMA COMPLEX DP (E) VALEUR PROPRE DE SHIFT
  20. *
  21. * CHOIX CHAINE*2 (E) VALEURS PROPRES VOULUES
  22. * LM - VP DE MODULE MAX
  23. * SM - VP DE MODULE MIN
  24. * LR - VP DE PARTIE R MAX
  25. * SR - VP DE PARTIE R MIN
  26. * LI - VP DE PARTIE I MAX
  27. * SI - VP DE PARTIE I MIN
  28. * LA - VP MAX
  29. * SA - VP MIN
  30. * BE - VP DE CHAQUE COTE
  31. *
  32. * QUAD LOGIQUE (E) PROBLEME QUADRATIQUE OU NON
  33. *
  34. * NVAL ENTIER (E) NOMBRE DE MODES PROPRES A CALCULER
  35. *
  36. * IPRIGI ENTIER (E) POINTEUR D'UNE RIGIDITE
  37. *
  38. * IPMASS ENTIER (E) POINTEUR D'UNE MASSE
  39. *
  40. * LAGDUA ENTIER (E) NB DE M. DE LAGRANGE DUALISES
  41. *
  42. * NK ENTIER (E) DIMENSION DU PROBLEME (K)
  43. *
  44. * NM ENTIER (E) DIMENSION DU PROBLEME (M)
  45. *
  46. * CHOLE LOGIQUE (E) CHOLESKY NON ALTERNATIVE POSSIBLE
  47. *
  48. * IPSOLU ENTIER (S) POINTEUR SUR LA SOLUTION CREE
  49. *
  50. * EPSI REEL DP (E) ZERO DE TOLERANCE
  51. *
  52. *
  53. * SOUS-PROGRAMMES APPELES:
  54. * ------------------------
  55. *
  56. * ARPINI,ARPALE,ARPOPE,ARPITQ,ARPOST
  57. *
  58. * AUTEUR, DATE DE CREATION:
  59. * -------------------------
  60. *
  61. * PASCAL BOUDA 17 JUILLET 2015
  62. *
  63. * LANGAGE:
  64. * --------
  65. *
  66. * FORTRAN 77 & 90
  67. *
  68. ***********************************************************************
  69.  
  70.  
  71. -INC PPARAM
  72. -INC CCOPTIO
  73. -INC TARWORK
  74.  
  75.  
  76. COMPLEX*16 SIGMA
  77. CHARACTER*2 CHOIX
  78. LOGICAL QUAD
  79. INTEGER NVAL
  80. INTEGER IPRIGI
  81. INTEGER IPMASS
  82. INTEGER IPAMOR
  83. INTEGER LAGDUA
  84. INTEGER NK
  85. INTEGER NM
  86. LOGICAL CHOLE
  87. INTEGER IPSOLU
  88. REAL*8 EPSI
  89.  
  90. INTEGER IPBUFF
  91. INTEGER ITER
  92. INTEGER IPRTRA
  93. LOGICAL OUT
  94. LOGICAL SYM
  95. LOGICAL INVER
  96.  
  97.  
  98. *Nombre maximal d'iteration autorise
  99. MAXITE=MIN(100*MAX(NK,NM),10000)
  100.  
  101. *Initialisation de tous les paramètres ARPACK
  102. CALL ARPINI (NVAL,2*NK,.FALSE.,CHOLE,.FALSE.,.FALSE.,
  103. & SIGMA,CHOIX,IPMAUP,MAXITE)
  104.  
  105. *Construction des operateurs de travail
  106. CALL ARPOPE (IPRIGI,IPMASS,IPAMOR,QUAD,SIGMA,IPRTRA)
  107.  
  108. *Inititalisation du vecteur residu d'arpack
  109. CALL ARPALE (IPRTRA,IPMAUP,QUAD)
  110. IF (IERR.NE.0) GOTO 999
  111.  
  112. *Boucle pour la factorisation d'Arnoldi
  113. DO ITER=1,MAXITE
  114. IF (IIMPI.GE.10) WRITE(IOIMP,*) '***ITERATION :',ITER,' ***'
  115. *Iteration
  116. CALL ARPITQ (IPRTRA,IPMAUP,SIGMA,INVER,EPSI,OUT)
  117. IF (IERR.NE.0) GOTO 999
  118. *Sortie si convergence
  119. IF (OUT) GOTO 999
  120. ENDDO
  121.  
  122. 999 CONTINUE
  123.  
  124. IF (IIMPI.GE.1)
  125. & WRITE(IOIMP,*) '*** SORTIE APRES :',ITER,' ITERATIONS ***'
  126.  
  127. *Destruction des operateurs de travail (matrices principales exclues)
  128. MRITRA=IPRTRA
  129. SEGACT MRITRA*MOD
  130. DO i=4,RIGI(/1)
  131. IF (RIGI(i) .NE. 0) THEN
  132. IPBUFF=RIGI(i)
  133. CALL DTRIGI(IPBUFF)
  134. RIGI(i)=0
  135. ENDIF
  136. ENDDO
  137.  
  138. SEGDES MRITRA
  139.  
  140. IF (IERR.NE.0) RETURN
  141.  
  142. *Posttraitement des resultats: creation de l'objet solution
  143. CALL ARPOST (IPRTRA,LAGDUA,SIGMA,QUAD,SYM,INVER,
  144. & IPMAUP,IPSOLU,EPSI)
  145. IF (IERR.NE.0) RETURN
  146.  
  147. *Suppression du segment de travail ARPACK
  148. MAUP=IPMAUP
  149. c SEGSUP MAUP
  150.  
  151. END
  152.  
  153.  
  154.  
  155.  
  156.  

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