Télécharger ortho1.eso

Retour à la liste

Numérotation des lignes :

ortho1
  1. C ORTHO1 SOURCE CHAT 05/01/13 02:06:32 5004
  2. SUBROUTINE ORTHO1 (IPX0,IPLIS1,IPLIS2,IPLIS3,LLIST,IPRIGI,PRECIS
  3. & ,NFOIS,COMBIN,IPX)
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8 (A-H,O-Z)
  6. ************************************************************************
  7. *
  8. * O R T H O 1
  9. * -----------
  10. *
  11. * FONCTION:
  12. * ---------
  13. *
  14. * R-ORTHOGONALISER UN CHPOINT "X" PAR RAPPORT A UNE SUITE DE
  15. * CHPOINTS "U(I)", "R" ETANT UNE RIGIDITE DONNEE.
  16. * CAS DE FIGURE OU L'ON CONNAIT DEJA LES PRODUITS "R.U(I)".
  17. *
  18. * MODE D'APPEL:
  19. * -------------
  20. *
  21. * CALL ORTHO1 (IPX0,IPLIS1,IPLIS2,IPLIS3,LLIST,IPRIGI,PRECIS
  22. * & ,NFOIS,COMBIN,IPX)
  23. *
  24. * PARAMETRES: (E)=ENTREE (S)=SORTIE
  25. * -----------
  26. *
  27. * IPX0 ENTIER (E) POINTEUR DU CHPOINT A "R-ORTHOGONALISER".
  28. * IPLIS1 ENTIER (E) POINTEUR DU 'LISTCHPO' CONTENANT LES "U(I)"
  29. * IPLIS2 ENTIER (E) POINTEUR DU 'LISTREEL' CONTENANT LES
  30. * PRODUITS "U(I).R.U(I)".
  31. * IPLIS3 ENTIER (E) POINTEUR DU 'LISTCHPO' CONTENANT LES
  32. * PRODUITS "R.U(I)".
  33. * LLIST ENTIER (E) NOMBRE DE CHPOINTS "U(I)".
  34. * IPRIGI ENTIER (E) POINTEUR DE LA 'RIGIDITE' "R".
  35. * PRECIS REEL DP (E) PRECISION DEMANDEE POUR LA
  36. * R-ORTHOGONALISATION.
  37. * = 0 SI L'ON NE VEUT PAS DE TEST DE
  38. * PRECISION.
  39. * ON NE VERIFIE PAS QUE "PRECIS >= 0".
  40. * NFOIS ENTIER (E) NOMBRE DE FOIS QUE L'ON EFFECTUE LA
  41. * "R-ORTHOGONALISATION" (POUR PALIER AUX
  42. * ERREURS D'ARRONDIS).
  43. * COMBIN SUBROUT. (E) SOUS-PROGRAMME DE COMBINAISON LINEAIRE DE
  44. * 2 'CHPOINTS'. 5 ARGUMENTS:
  45. * - 'CHPOINT' N.1 ,
  46. * - REEL D.P. N.1 ,
  47. * - 'CHPOINT' N.2 ,
  48. * - REEL D.P. N.2 ,
  49. * - 'CHPOINT' COMBINAISON LINEAIRE.
  50. * IPX ENTIER (S) POINTEUR DU CHPOINT "R-ORTHOGONAL" A LA
  51. * SUITE DE CHPOINTS.
  52. *
  53. * LEXIQUE: (ORDRE ALPHABETIQUE)
  54. * --------
  55. *
  56. * IPRU ENTIER POINTEUR D'UN CHPOINT "R.U(I)".
  57. * IPU ENTIER POINTEUR D'UN CHPOINT "U(I)".
  58. * IPXX ENTIER POINTEUR DU CHPOINT "X" A UN CERTAIN STADE DE
  59. * TRANSFORMATION.
  60. * ORTHO LOGIQUE INDIQUE PAR "VRAI" OU "FAUX" SI LA
  61. * "R-ORTHOGONALISATION" A ETE EFFECTUEE AVEC
  62. * SUCCES.
  63. * PREMOD REEL DP PRECISION D'ORTHOGONALISATION, MODULEE EN
  64. * FONCTION DE LA TAILLE DU PROBLEME.
  65. * UTRUMX REEL DP MAXIMUM DES PRODUITS U(I)T.R.U(I)
  66. * UTRU REEL DP PRODUIT U(I)T.R.U(I) ("T" POUR "TRANSPOSE").
  67. * XTRU REEL DP PRODUIT XT.R.U(I) ("T" POUR "TRANSPOSE").
  68. *
  69. * REMARQUES:
  70. * ----------
  71. *
  72. * PRECISION: LA PRECISION DEMANDEE N'EST PAS PRISE TELLE QUELLE.
  73. * ELLE EST MODULEE EN FONCTION DE LA TAILLE DU PROBLEME. EN EFFET,
  74. * ON NE PEUT PAS DEMANDER AUTANT DE PRECISION POUR UN PROBLEME DE
  75. * GRANDE TAILLE, POUR LEQUEL IL Y A D'AVANTAGE D'ERREURS DE
  76. * TRONCATURE.
  77. *
  78. * CE SOUS-PROGRAMME A ETE CREE PAR ANALOGIE AVEC "ORTHO2" ET NE
  79. * POURRA ETRE TESTE QUE LORSQUE L'OPERATEUR "YTX" EXISTERA.
  80. *
  81. * SOUS-PROGRAMMES APPELES:
  82. * ------------------------
  83. *
  84. * DIMEN3, DTCHPO, ERREUR, EXTRA1, EXTRA4, MAXIM3, NORME2, YTX1.
  85. *
  86. * AUTEUR, DATE DE CREATION:
  87. * -------------------------
  88. *
  89. * PASCAL MANIGOT 05 AVRIL 1985
  90. *
  91. * LE 26 AOUT 1985 (P. MANIGOT): PRECISION MODULEE EN FONCTION DE LA
  92. * TAILLE DU PROBLEME.
  93. *
  94. * LANGAGE:
  95. * --------
  96. *
  97. * FORTRAN77
  98. *
  99. ************************************************************************
  100. *
  101.  
  102. -INC PPARAM
  103. -INC CCOPTIO
  104. -INC SMLMOTS
  105. *
  106. *
  107. LOGICAL ORTHO
  108. *
  109. PARAMETER (UN = 1.D0)
  110. PARAMETER (RLIM=0.1)
  111. EXTERNAL COMBIN
  112. *
  113. * TAILLE DU PROBLEME:
  114. CALL DIMEN3 (IPRIGI, NBRINC)
  115. IF (IERR .NE. 0) RETURN
  116. PREMOD = PRECIS * (DBLE(NBRINC)**2)
  117. *
  118. CALL MAXIM3 (IPLIS2, IPLACE,UTRUMX)
  119. IF (IERR .NE. 0) RETURN
  120. UTRUMX = ABS(UTRUMX)
  121. *
  122. * ON DONNE AU 'CHPOINT' A ORTHOGONALISER LE MEME ORDRE DE GRANDEUR
  123. * QUE CELUI DES 'CHPOINTS' DU 'LISTCHPO':
  124. IPLMOX=0
  125. IPLMOY=0
  126. CALL NORME2 (IPX0,UTRUMX,IPRIGI, IPX,XTRX,IPLMOX,
  127. C IPLMOY,IPRX)
  128. IF (IERR .NE. 0) RETURN
  129. XTRX1 = XTRX
  130. *
  131. DO 100 IB100=1,NFOIS
  132. *
  133. DO 110 IB110=1,LLIST
  134. *
  135. * -- ORTHOGONALISATION --
  136. *
  137. CALL EXTRA4 (IPLIS1,IB110, IPU)
  138. IF (IERR .NE. 0) RETURN
  139. CALL EXTRA1 (IPLIS2,IB110, UTRU)
  140. IF (IERR .NE. 0) RETURN
  141. CALL EXTRA4 (IPLIS3,IB110, IPRU)
  142. IF (IERR .NE. 0) RETURN
  143. IF(IB100.EQ.1) CALL CORRSP(iprigi,IPX,IPRU,IPLMOX,IPLMOY)
  144. CALL XTY1 (IPX,IPRU,IPLMOX,IPLMOY, XTRU)
  145. IF (IERR .NE. 0) RETURN
  146. XXTRU = -1.D0 * XTRU / UTRU
  147. *
  148. *
  149. *
  150. *
  151. 111 CALL COMBIN (IPX,UN,IPU,XXTRU, IPXX)
  152. IF (IERR .NE. 0) RETURN
  153. CALL DTCHPO (IPX)
  154. IPX=IPXX
  155. *
  156. *
  157. XTRX1=XTRX1-((XTRU*XTRU)/UTRU)
  158. 110 CONTINUE
  159. RNM=ABS(XTRX1/XTRX)
  160. IF(RNM.GE.RLIM) GOTO 1001
  161. NV=LLIST+1
  162. WRITE(IOIMP,1000) NV,RNM
  163. 1000 FORMAT(/40X,'OPERATEUR VIBRA OPTION SIMULTANE',/10X,
  164. C ' DIFFICULTE D ORTHOGONALISER LE ',I5,
  165. C ' IEME VECTEUR NORME APRES ORTHOGONALISATION PAR ',
  166. C ' RAPPORT A LA NORME INITIALE ',E12.5)
  167. 1001 CONTINUE
  168. COEFF=SQRT(1.0E0/RNM)
  169. CALL MUCHPO(IPXX,COEFF,IPX,1)
  170. CALL DTCHPO(IPXX)
  171.  
  172.  
  173. * END DO
  174. *
  175. ORTHO = .TRUE.
  176. *
  177. GOTO 100
  178. *
  179. C 112 IF (PRECIS .NE. 0.D0) THEN
  180. *
  181. * -- TEST D'ORTHOGONALITE --SUPPRIME FEVR.88
  182. *
  183. C DO 120 IB120=1,LLIST
  184. *
  185. C CALL EXTRA4 (IPLIS3,IB120, IPRU)
  186. C IF (IERR .NE. 0) RETURN
  187. C CALL XTY1 (IPX,IPRU,IPLMOX,IPLMOY, XTRU)
  188. C IF (IERR .NE. 0) RETURN
  189. C IF (ABS(XTRU) .GT. PREMOD*UTRUMX) THEN
  190. C ORTHO = .FALSE.
  191. C --> SORTIE DE BOUCLE N.120
  192. C GOTO 122
  193. C END IF
  194. C
  195. C 120 CONTINUE
  196. C END DO
  197. C 122 CONTINUE
  198. *
  199. C IF (ORTHO) THEN
  200. * --> SORTIE DE BOUCLE N.100
  201. C GOTO 102
  202. C END IF
  203. C
  204. C END IF
  205. *
  206. 100 CONTINUE
  207. * END DO
  208. 102 CONTINUE
  209. MLMOTS =IPLMOX
  210. MLMOT1 =IPLMOY
  211. SEGSUP MLMOTS,MLMOT1
  212. *
  213. IF (.NOT.ORTHO) THEN
  214. INTERR(1) = NFOIS
  215. REAERR(1) = PREMOD
  216. NUMERR = 218
  217. CALL ERREUR (NUMERR)
  218. END IF
  219. RETURN
  220. END
  221.  
  222.  
  223.  
  224.  

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