Télécharger orthog.eso

Retour à la liste

Numérotation des lignes :

orthog
  1. C ORTHOG SOURCE CHAT 05/01/13 02:06:39 5004
  2. SUBROUTINE ORTHOG
  3. ************************************************************************
  4. *
  5. * O R T H O G
  6. * -----------
  7. *
  8. * SOUS-PROGRAMME ASSOCIE A L'OPERATEUR "ORTHOGONALISER"
  9. *
  10. * FONCTION:
  11. * ---------
  12. *
  13. * ORTHOGONALISER UN OBJET "XX" PAR RAPPORT A UNE SUITE D'OBJETS
  14. * "U(I)" ORTHOGONAUX ENTRE EUX ET DE MEME TYPE QUE "XX".
  15. *
  16. * L'ORTHOGONALITE CHOISIE EST DEFINIE AU MOYEN D'UN OBJET "RR" TEL
  17. * QUE L'EXPRESSION:
  18. * XX * RR * U(I)
  19. * AIT UN SENS ET PUISSE ETRE COMPAREE A "0".
  20. *
  21. * PHRASE D'APPEL (EN GIBIANE):
  22. * ----------------------------
  23. *
  24. * YY = ORTHOGONALISER (SEMBLABLE) XX SUIT-U SUI-UTRU (SUIT-RU) RR
  25. * (EE (NN) ) ;
  26. *
  27. * LES PARENTHESES INDIQUANT DES OPERANDES FACULTATIFS.
  28. *
  29. * OPERANDES ET RESULTATS:
  30. * -----------------------
  31. *
  32. * SEMBLABL 'MOT' MOT-CLE VALABLE SI "XX" EST DE TYPE
  33. * 'CHPOINT'. IL SIGNIFIE QUE L'ON EST CERTAIN
  34. * QUE TOUS LES CHPOINTS S'APPUIENT SUR LES
  35. * MEMES POINTS, AVEC LES MEMES COMPOSANTES.
  36. * C'EST UNE OPTION QUI ACCELERE LE CALCUL,
  37. * MAIS QUI DEMANDE AU PROGRAMMEUR UNE BONNE
  38. * MAITRISE DES OPERANDES FOURNIS.
  39. * XX TYPE-1 OBJET A ORTHOGONALISER.
  40. * SUIT-U TYPE-2 SUITE D'OBJETS "U(I)" AUXQUELS "XX" DOIT ETR
  41. * ORTHOGONAL.
  42. * SUI-UTRU 'LISTREEL' SUITE DES PRODUITS "U(I)*RR*U(I)".
  43. * SUIT-RU TYPE-3 SUITE D'OBJETS EGAUX A RR*U(I). SI ELLE EST
  44. * FOURNIE, CETTE SUITE EVITE DE REFAIRE LES
  45. * PRODUITS RR*U(I).
  46. * RR TYPE-4 OBJET DEFINISSANT L'ORTHOGONALITE.
  47. * EE 'FLOTTANT' PRECISION D'ORTHOGONALITE DEMANDEE.
  48. * NN 'ENTIER ' NOMBRE DE FOIS MAXI QUE L'ON DOIT REFAIRE
  49. * L'OPERATION D'ORTHOGONALISATION, POUR
  50. * COMPENSER LES ERREURS D'ARRONDI (N'A DE SENS
  51. * QUE SI L'ON A DONNE UNE PRECISION "EE").
  52. * YY TYPE-1 OBJET ORTHOGONALISE.
  53. *
  54. * TYPE-1 ---> TYPE-2 TYPE-3 TYPE-4
  55. *
  56. * CHPOINT LISTCHPO LISTCHPO RIGIDITE
  57. *
  58. * LEXIQUE: (ORDRE ALPHABETIQUE)
  59. * --------
  60. *
  61. * IPOIN1 ENTIER POINTEUR SUR "XX".
  62. * IPOIN2 ENTIER POINTEUR SUR "SUIT-U".
  63. * IPOIN3 ENTIER POINTEUR SUR "SUI-UTRU".
  64. * IPOIN4 ENTIER POINTEUR SUR "SUIT-RU".
  65. * IPOIN5 ENTIER POINTEUR SUR "RR".
  66. * IPOIN6 ENTIER POINTEUR SUR "YY".
  67. * LLIST ENTIER NOMBRE D'ELEMENTS DE LA SUITE "SUIT-U".
  68. *
  69. * AUTEUR, DATE DE CREATION:
  70. * -------------------------
  71. *
  72. * PASCAL MANIGOT 10 AVRIL 1985
  73. *
  74. * LANGAGE:
  75. * --------
  76. *
  77. * FORTRAN77 + EXTENSION: CARACTERES MIS DANS DES ENTIERS
  78. *
  79. ************************************************************************
  80. *
  81. IMPLICIT INTEGER(I-N)
  82.  
  83. -INC PPARAM
  84. -INC CCOPTIO
  85. *
  86. REAL*8 EE,XMINIM
  87. *
  88. PARAMETER (NBRMOT = 1)
  89. PARAMETER (NBRTYP = 1)
  90. PARAMETER (NFOIS = 1)
  91. *
  92. CHARACTER*4 LISMOT(NBRMOT)
  93. CHARACTER*(8) MOTYPE
  94. *
  95. DATA LISMOT/'SEMB'/
  96. *
  97. * -- LECTURE D'UNE OPTION EVENTUELLE --
  98. *
  99. ICODE = 0
  100. NBMOT = NBRMOT
  101. CALL LIRMOT (LISMOT,NBMOT,NUMMOT,ICODE)
  102. IF (IERR .NE. 0) RETURN
  103. *
  104. * -- LECTURE DE "XX" --
  105. *
  106. CALL LIROBJ ('CHPOINT',IPOIN1,1,IRETOU)
  107. IF (IERR .NE. 0) RETURN
  108. *
  109. * -- LECTURE DES "U(I)" ET DE LEUR QUANTITE --
  110. *
  111. CALL LIROBJ ('LISTCHPO',IPOIN2,1,IRETOU)
  112. IF (IERR .NE. 0) RETURN
  113. *
  114. CALL DIMEN2 (IPOIN2,LLIST)
  115. IF (IERR .NE. 0) RETURN
  116. *
  117. * -- LECTURE DES "UT.RR.U" --
  118. *
  119. CALL LIROBJ ('LISTREEL',IPOIN3,1,IRETOU)
  120. IF (IERR .NE. 0) RETURN
  121. *
  122. CALL DIMEN2 (IPOIN3,LLIS3)
  123. IF (IERR .NE. 0) RETURN
  124. IF (LLIS3 .NE. LLIST) THEN
  125. CALL ERREUR (217)
  126. RETURN
  127. END IF
  128. *
  129. * -- LECTURE DES "RR*U(I)" ET DE "RR" --
  130. *
  131. CALL LIROBJ ('LISTCHPO',IPOIN4,0,IRETOU)
  132. IF (IRETOU .EQ. 1) THEN
  133. CALL DIMEN2 (IPOIN4,LLIS4)
  134. IF (IERR .NE. 0) RETURN
  135. IF (LLIS4 .NE. LLIST) THEN
  136. CALL ERREUR (217)
  137. RETURN
  138. END IF
  139. ELSE
  140. IPOIN4 = 0
  141. END IF
  142. *
  143. CALL LIROBJ ('RIGIDITE',IPOIN5,1,IRETOU)
  144. IF (IERR .NE. 0) RETURN
  145. *
  146. * -- LECTURE DE "EE" ET DE "NN" --
  147. *
  148. ICODE = 0
  149. XMINIM = 0.D0
  150. CALL LIRE04 (XMINIM,EE,0,ICODE,IRETOU)
  151. IF (IRETOU .EQ. 0) THEN
  152. EE = 0.D0
  153. NN = NFOIS
  154. ELSE
  155. ICODE = 0
  156. MINIME = 1
  157. CALL LIRE03 (MINIME,NN,ICODE,IRETOU)
  158. IF (IRETOU .EQ. 0) THEN
  159. NN = NFOIS
  160. END IF
  161. END IF
  162. *
  163. * -- ORTHOGONALISATION --
  164. *
  165. CALL ORTH10 (NUMMOT,IPOIN1,IPOIN2,IPOIN3,IPOIN4,LLIST,IPOIN5
  166. & ,EE,NN, IPOIN6)
  167. *
  168. CALL ECROBJ ('CHPOINT',IPOIN6)
  169. *
  170. END
  171.  
  172.  

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