Télécharger wrmmat.eso

Retour à la liste

Numérotation des lignes :

wrmmat
  1. C WRMMAT SOURCE PV 20/09/26 21:20:15 10724
  2. SUBROUTINE WRMMAT (ISORTI,ITLACC,IMAX1,IFORM,IDEB)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8(A-H,O-Z)
  5. C=======================================================================
  6. C BUT : ECRITURE DES MMATRI SUR LE FICHIER ISORTI
  7. C APPELE PAR WRPIL
  8. C APPELLE : ECDIFE ECDIFM ECDIFR
  9. C : ECDES ECDIFP JDANSI
  10. C ECRIT PAR FARVACQUE - REPRIS PAR LENA
  11. C=======================================================================
  12.  
  13. -INC PPARAM
  14. -INC CCOPTIO
  15. -INC SMMATRI
  16. SEGMENT/ITLACC/(ITLAC(0)),ITLAC1.ITLACC,ITLAC2.ITLACC,
  17. 1 ITLAC3.ITLACC,ITLAC4.ITLACC,ITLAC5.ITLACC,ITLAC6.ITLACC
  18. C=======================================================================
  19. C=======================================================================
  20. SEGMENT/ITBBM1/( ITABM1(NM))
  21. C
  22. DIMENSION ILENA(30)
  23. C======================================================================
  24. C
  25. C ***************************** MMATRI *****************************
  26. 6016 CONTINUE
  27. DO 2600 IEL=IDEB,IMAX1
  28. MMATRI=ITLAC(IEL)
  29. SEGACT MMATRI
  30. IF(IILIGS.NE.0.AND.IONIVE.LE.8) THEN
  31. CALL ERREUR(723)
  32. SEGDES MMATRI
  33. RETURN
  34. ENDIF
  35. MILIGN=IILIGN
  36. SEGACT MILIGN
  37. NNOE=ILIGN(/1)
  38. INC=ITTR(/1)
  39. MINCPO=IINCPO
  40. SEGACT MINCPO
  41. NCOMP=INCPO(/1)
  42. SEGDES MINCPO
  43. MHARK=IHARK
  44. SEGACT MHARK
  45. LHAR=IHAR(/1)
  46. SEGDES MHARK
  47. MIMIK=IIMIK
  48. SEGACT MIMIK
  49. LMIK=IMIK(/2)
  50. SEGDES MIMIK
  51. MIDUA=IIDUA
  52. SEGACT MIDUA
  53. LDUA=IDUA(/2)
  54. SEGDES MIDUA
  55. ILENA(1) = INC
  56. ILENA(2) = IGEOMA
  57. ILENA(3) = IJMAX
  58. ILENA(4) = INEG
  59. ILENA(5) = NENS
  60. ILENA(6) = NCOMP
  61. ILENA(7) = NNOE
  62. ILENA(8) = LHAR
  63. ILENA(9) = LMIK
  64. ILENA(10)= LDUA
  65. IF(IONIVE.LE.8) THEN
  66. ITOTO = 10
  67. ELSE
  68. IF(IILIGS.NE.0) THEN
  69. ILENA(11)=1
  70. ELSE
  71. ILENA(11)=0
  72. ENDIF
  73. ITOTO = 11
  74. ENDIF
  75. CALL ECDIFE (ISORTI,ITOTO,ILENA,IFORM)
  76. CALL ECDIFE (ISORTI,INC,ITTR,IFORM)
  77. CALL ECDIFE (ISORTI,INC,IPNO,IFORM)
  78. DO 2601 I=1,NNOE
  79. LIGN=ILIGN(I)
  80. SEGACT LIGN
  81. NVALL=VAL(/1)
  82. NA=IMMM(/1)
  83. NA1=IPPVV(/1)
  84. NBPAR=IVPO(/1)/2
  85. KLM=1
  86. ILENA(KLM )=NVALL
  87. ILENA(KLM+1)=NA
  88. ILENA(KLM+2)=NA1
  89. ILENA(KLM+3)=IMM
  90. ILENA(KLM+4)=IPREL
  91. ILENA(KLM+5)=IDERL
  92. ILENA(KLM+6)=NBPAR
  93. NN=7
  94. CALL ECDIFE(ISORTI,NN,ILENA,IFORM)
  95. CALL ECDIFR(ISORTI,NVALL,VAL,IFORM)
  96. CALL ECDIFE (ISORTI,NA,IMMM,IFORM)
  97. CALL ECDIFE (ISORTI,NA1,IPPVV,IFORM)
  98. CALL ECDIFE (ISORTI,2*NBPAR,IVPO,IFORM)
  99. SEGDES LIGN
  100. 2601 CONTINUE
  101. SEGDES MILIGN
  102. C
  103. IF(IILIGS.NE.0.AND.IONIVE.GE.9) THEN
  104. MILIGN = IILIGS
  105. SEGACT MILIGN
  106.  
  107. DO 2602 I=1,NNOE
  108. LIGN=ILIGN(I)
  109. SEGACT LIGN
  110. NVALL=VAL(/1)
  111. NA=IMMM(/1)
  112. NA1=IPPVV(/1)
  113. NBPAR=IVPO(/1)/2
  114. KLM=1
  115. ILENA(KLM )=NVALL
  116. ILENA(KLM+1)=NA
  117. ILENA(KLM+2)=NA1
  118. ILENA(KLM+3)=IMM
  119. ILENA(KLM+4)=IPREL
  120. ILENA(KLM+5)=IDERL
  121. ILENA(KLM+6)=NBPAR
  122. NN=7
  123. CALL ECDIFE(ISORTI,NN,ILENA,IFORM)
  124. CALL ECDIFR(ISORTI,NVALL,VAL,IFORM)
  125. CALL ECDIFE (ISORTI,NA,IMMM,IFORM)
  126. CALL ECDIFE (ISORTI,NA1,IPPVV,IFORM)
  127. CALL ECDIFE (ISORTI,2*NBPAR,IVPO,IFORM)
  128. SEGDES LIGN
  129. 2602 CONTINUE
  130.  
  131.  
  132. SEGDES MILIGN
  133. ENDIF
  134. C
  135. MINCPO=IINCPO
  136. SEGACT MINCPO
  137. L=NCOMP*NNOE
  138. CALL ECDIFE(ISORTI,L,INCPO,IFORM)
  139. SEGDES MINCPO
  140. MHARK=IHARK
  141. SEGACT MHARK
  142. CALL ECDIFE (ISORTI,LHAR,IHAR(1),IFORM)
  143. SEGDES MHARK
  144. MIMIK=IIMIK
  145. MIDUA=IIDUA
  146. NM=LMIK+LDUA
  147. SEGINI ITBBM1
  148. SEGACT MIMIK
  149. DO 2231 IPV=1,LMIK
  150. READ (IMIK(IPV),FMT='(A4)') ITABM1(IPV)
  151. 2231 CONTINUE
  152. SEGDES MIMIK
  153. SEGACT MIDUA
  154. DO 2232 IPV=1,LDUA
  155. READ (IDUA(IPV),FMT='(A4)') ITABM1(IPV+LMIK)
  156. 2232 CONTINUE
  157. SEGDES MIDUA
  158. CALL ECDIFM (ISORTI,NM,ITABM1,IFORM)
  159. SEGSUP ITBBM1
  160. MDNOR=IDNORM
  161. SEGACT MDNOR
  162. CALL ECDIFR(ISORTI,INC,DNOR,IFORM)
  163. SEGDES MDNOR
  164. MDIAG=IDIAG
  165. SEGACT MDIAG
  166. CALL ECDIFR(ISORTI,INC,DIAG,IFORM)
  167. SEGDES MDIAG
  168. SEGDES MMATRI
  169. 2600 CONTINUE
  170. GOTO 1098
  171. 1098 CONTINUE
  172. RETURN
  173. END
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  

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