Télécharger vmorth.eso

Retour à la liste

Numérotation des lignes :

vmorth
  1. C VMORTH SOURCE GOUNAND 25/10/23 21:15:12 12385
  2. SUBROUTINE VMORTH(X,N,NX,XPRE,R)
  3. IMPLICIT REAL*8 (A-H,O-Z)
  4. IMPLICIT INTEGER (I-N)
  5. C***********************************************************************
  6. C NOM : VMORTH
  7. C DESCRIPTION : Verifie qu'une matrice X est orthonormale a XPRE pres
  8. C sinon erreur.
  9. C
  10. C
  11. C LANGAGE : ESOPE
  12. C AUTEUR : Stephane GOUNAND (CEA/DES/ISAS/DM2S/SEMT/LTA)
  13. C mel : gounand@semt2.smts.cea.fr
  14. C***********************************************************************
  15. C***********************************************************************
  16. C SYNTAXE GIBIANE :
  17. C ENTREES : X, NX, XPRE
  18. C ENTREES/SORTIES : R (espace de stockage de dimension nx,nx)
  19. C SORTIES :
  20. C***********************************************************************
  21. C VERSION : v1, 20/10/2025, version initiale
  22. C HISTORIQUE : v1, 20/10/2021, creation
  23. C HISTORIQUE :
  24. C HISTORIQUE :
  25. C***********************************************************************
  26. -INC PPARAM
  27. -INC CCOPTIO
  28. *
  29. dimension x(nx,nx)
  30. dimension r(nx,nx)
  31. *
  32. * Executable statements
  33. *
  34. * les vecteurs dans x forment ils bien une base orthonormee ?
  35. do j=1,n
  36. do i=1,n
  37. r(i,j)=0.d0
  38. enddo
  39. enddo
  40. do j=1,n
  41. do i=1,n
  42. do l=1,n
  43. r(i,j)=r(i,j)+x(l,i)*x(l,j)
  44. enddo
  45. enddo
  46. enddo
  47. do j=1,n
  48. do i=1,n
  49. if (i.ne.j) then
  50. if (abs(r(i,j)).gt.xpre) then
  51. write(6,*) '!!!! Vecteurs colonnes ',i,' et ',j
  52. $ ,' non orthogonaux, pscal=',r(i,j)
  53. goto 9999
  54. endif
  55. else
  56. if ((abs(r(j,j)-1.d0)).gt.xpre) then
  57. write(6,*) 'Vecteur colonne ',j
  58. $ ,' non unitaire, norme=',r(j,j)
  59. goto 9999
  60. endif
  61. endif
  62. enddo
  63. enddo
  64. *
  65. * Normal termination
  66. *
  67. RETURN
  68. *
  69. * Format handling
  70. *
  71. *
  72. * Error handling
  73. *
  74. 9999 CONTINUE
  75. MOTERR(1:8)='VMORTH'
  76. call erreur(1127)
  77. RETURN
  78. *
  79. * End of subroutine VMORTH
  80. *
  81. END
  82.  
  83.  

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