Télécharger ldmt.eso

Retour à la liste

Numérotation des lignes :

ldmt
  1. C LDMT SOURCE MB234859 25/01/03 21:15:13 12105
  2. SUBROUTINE LDMT(KRIGI,IDAMEM,NOID,NOEN,PREC,ISOUCI)
  3. C
  4. C **** SUBROUTINE QUI EXECUTE L OPERATION RESOU
  5. C SUR DES MATRICES SANS SYMETRIES
  6. C **** APPELEE PAR RESOU OU PAR SUPRI
  7. C
  8. C Elle est équivalente à RESOU1 dans le cas de l'inversion des
  9. C matrices symétriques
  10. C
  11. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  12. C
  13. C Auteur : Michel BULIK
  14. C
  15. C Date : Printemps '95
  16. C
  17. C Langage : ESOPE + FORTRAN77
  18. C
  19. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  20. IMPLICIT INTEGER(I-N)
  21. REAL*8 XKT,PREC
  22. INTEGER OOOVAL
  23. SEGMENT IDEMEM(0)
  24. -INC SMRIGID
  25. -INC SMVECTD
  26. -INC PPARAM
  27. -INC CCOPTIO
  28. -INC SMMATRI
  29. C
  30. MRIGID=KRIGI
  31. SEGACT MRIGID
  32. LAGDUA=IMLAG
  33. ICHOLX=ICHOLE
  34. SEGDES MRIGID
  35. IF(ICHOLX.NE.0) then
  36. MMATRI=ICHOLX
  37. SEGACT MMATRI
  38. IF (PRCHLV.lt.PREC*1.001.and.PRCHLV.gt.PREC*0.999) GO TO 1
  39. write (6,*) ' attention changement de precision '
  40. MILIGN=IILIGN
  41. segact milign
  42. DO 20 I=1,ILIGN(/1)
  43. LIGN=ILIGN(I)
  44. SEGSUP LIGN
  45. SEGSUP LIGN
  46. 20 CONTINUE
  47. MDIAG=IDIAG
  48. SEGSUP MDIAG
  49. MDNOR=IDNORM
  50. SEGSUP MDNOR
  51. SEGSUP MMATRI
  52. ICHOLX=0
  53. ENDIF
  54. CALL LDMT1(KRIGI,PREC)
  55. IF(IERR.NE.0) GO TO 5000
  56. MRIGID=KRIGI
  57. SEGACT MRIGID
  58. ICHOLX=ICHOLE
  59. SEGDES MRIGID
  60. C
  61. C **** SUBROUTINE CHV2 : TRANSFORME LE CHPOIN ISECO EN VECTEUR
  62. C
  63. 1 CONTINUE
  64. IDEMEM=IDAMEM
  65. SEGACT IDEMEM*MOD
  66. NNTOT=IDEMEM(/1)
  67. MMATRI=ICHOLX
  68. SEGACT MMATRI
  69. MILIGN=IILIGN
  70. SEGACT,MILIGN
  71. INK=IPNO(/1)
  72. SEGDES MILIGN,MMATRI
  73. CALL INTPDO(LENB)
  74. NNPA= MAX(1,((OOOVAL(1,1)-NGMAXY)/(2*LENB))/INK+1)
  75. C
  76. C ON TRAVAILLE AVEC AUTANT DE VECTEUR SIMULTANEE QU'IL EN RENTRE DANS
  77. C LA MOITIE DE LA MEMOIRE CENTRALE
  78. C
  79. NN=NNPA
  80. DO 201 KGEN = 1,NNTOT,NNPA
  81. IF(KGEN+NNPA-1.GT.NNTOT) NN= NNTOT-KGEN+1
  82. KGEN1=KGEN-1
  83. DO 2 K=1,NN
  84. ISECO=IDEMEM(K+KGEN1)
  85. CALL CHVNS(ICHOLX,ISECO,MVECTX,NOID)
  86. IF(IERR.NE.0) GO TO 5000
  87. IDEMEM(K+KGEN1)=MVECTX
  88. 2 CONTINUE
  89. IF(NN.NE.1) THEN
  90. INC = INK * NN
  91. SEGINI MVECTD
  92. DO 3 LL=1,NN
  93. LD=INK*(LL-1)
  94. MVECT1=IDEMEM(LL+KGEN1)
  95. SEGACT MVECT1
  96. DO L=1,INK
  97. VECTBB(L+LD)=MVECT1.VECTBB(L)
  98. ENDDO
  99. SEGSUP MVECT1
  100. 3 CONTINUE
  101. MVECTX=MVECTD
  102. SEGDES MVECTD
  103. ENDIF
  104. C
  105. C **** SUBROUTINE MONDES :
  106. C
  107. IF(IIMPI.EQ.1) THEN
  108. WRITE(IOIMP,499)
  109. 499 FORMAT(' TEMPS SUIVANT AVANT APPEL MONDES')
  110. CALL GIBTEM(XKT)
  111. INTERR(1)=INT(XKT)
  112. CALL ERREUR(-259)
  113. ENDIF
  114. CALL MONDES(ICHOLX,MVECTX,NOEN,ISOUCI,LAGDUA)
  115. IF(IIMPI.EQ.1) THEN
  116. WRITE(IOIMP,498)
  117. 498 FORMAT(' TEMPS SUIVANT APRES APPEL MONDES')
  118. CALL GIBTEM(XKT)
  119. INTERR(1)=INT(XKT)
  120. CALL ERREUR(-259)
  121. ENDIF
  122. IF(IERR.NE.0) GO TO 5000
  123. C
  124. C **** SUBROUTINE VCH1 : REMET LE VECTEUR SOUS FORME D UN CHPOINT
  125. C **** LE CHPOINT EST DE TYPE PREMIER MEMBRE
  126. C
  127. MVECTA=MVECTX
  128. DO 5 K=1,NN
  129. IF(NN.EQ.1) GO TO 10
  130. IF(K.EQ.1) THEN
  131. INC=INK
  132. MVECT1=MVECTX
  133. SEGACT MVECT1
  134. SEGINI MVECTD
  135. ENDIF
  136. SEGACT MVECTD*mod
  137. LD=(K-1)*INK
  138. DO 6 L=1,INK
  139. VECTBB(L)=MVECT1.VECTBB(L+LD)
  140. 6 CONTINUE
  141. MVECTA=MVECTD
  142. SEGDES MVECTD
  143. IF(K.EQ.NN) SEGSUP MVECT1
  144. 10 CONTINUE
  145. CALL VCH1(ICHOLX,MVECTA,ISOLU,KRIGI)
  146. IF(IERR.NE.0) RETURN
  147. C
  148. IDEMEM(K+KGEN1)=ISOLU
  149. 5 CONTINUE
  150. MVECTD=MVECTA
  151. SEGSUP MVECTD
  152. 201 CONTINUE
  153. IDAMEM = IDEMEM
  154. C
  155. 5000 CONTINUE
  156. RETURN
  157. END
  158.  
  159.  
  160.  

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