Télécharger wrchpo.eso

Retour à la liste

Numérotation des lignes :

wrchpo
  1. C WRCHPO SOURCE CB215821 20/11/25 13:43:00 10792
  2. SUBROUTINE WRCHPO (ISORTIE,ITLACC,IMAX1,IFORM,IDEB,LCOMWR)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8(A-H,O-Z)
  5. C=======================================================================
  6. C BUT : ECRITURE DES CHPOINT SUR LE FICHIER ISORTIE
  7. C APPELE PAR : WRPIL (SAUV ?)
  8. C APPELLE : ECDIFE ECDIFM ECDIFR
  9. C : ECDES ECDIFP JDANSI
  10. C ECRIT PAR FARVACQUE - REPRIS PAR LENA
  11. C
  12. C (E) LCOMWR : Longueur des Noms de composantes a ecrire (depuis NIVEAU 23)
  13. C=======================================================================
  14.  
  15. -INC PPARAM
  16. -INC CCOPTIO
  17. -INC SMCHPOI
  18. SEGMENT/ITLACC/(ITLAC(0)),ITLAC1.ITLACC,ITLAC2.ITLACC,
  19. 1 ITLAC3.ITLACC,ITLAC4.ITLACC,ITLAC5.ITLACC,ITLAC6.ITLACC
  20. C=======================================================================
  21. C=======================================================================
  22. SEGMENT/ITBBE1/( ITABE1(NN))
  23. SEGMENT/ITBBE2/( ITABE2(NN))
  24. SEGMENT/ITBBE3/( ITABE3(NN))
  25. SEGMENT/ITBBM1/( ITABM1(NM))
  26. SEGMENT ITBBC1
  27. character*(LCOMWR) itabc1(nm)
  28. ENDSEGMENT
  29. * SEGMENT ITBBC2
  30. * character*4 itabc2(nm2)
  31. * ENDSEGMENT
  32.  
  33. SEGMENT/ITBBM2/( ITABM2(NM2))
  34. SEGMENT/ITABR1/( TABR1(L))
  35. C
  36. DIMENSION ILENA(10)
  37. character*80 itabc2
  38. C======================================================================
  39. C
  40. C **************************CHPOINT*********************************
  41. 6002 CONTINUE
  42. NM2=20
  43. SEGINI ITBBM2
  44.  
  45. IF(IONIVE .LT. 23)THEN
  46. C Les noms des composantes sont ecrits sur 4 caracteres
  47. LCOMWR=4
  48.  
  49. ELSE
  50. C Les noms des composantes sont ecrits sur LOCOMP caracteres
  51. LCOMWR=LOCOMP
  52. ENDIF
  53. C
  54. C ... BOUCLE SUR LES CHPO DE LA PILE
  55. DO 1101 IEL=IDEB,IMAX1
  56. C write(6,*) ' '
  57. C write(6,*) ' '
  58. MCHPOI=ITLAC(IEL)
  59. IF (MCHPOI.EQ.0) THEN
  60. C ... LE CHPO EST VIDE
  61. 11 ILENA(1)= 0
  62. ILENA(2)= 0
  63. ILENA(3)= 0
  64. ILENA(4)= 0
  65. ITOTO=3
  66. IF (IONIVE .GE. 6) ITOTO=4
  67. CALL ECDIFE(ISORTIE,ITOTO,ILENA,IFORM)
  68. ELSE
  69.  
  70. SEGACT MCHPOI
  71. NSOUPO=IPCHP(/1)
  72. if (nsoupo.gt.1000.or.nsoupo.le.0) nsoupo = 0
  73. C WRITE(6,*) ' WRCHPO MCHPOI NSOUPO ',MCHPOI,NSOUPO
  74. NSOUP3=3*NSOUPO
  75. NN=NSOUP3
  76. SEGINI ITBBE1
  77. NM=0
  78. SEGINI ITBBM1,ITBBC1
  79. NN=0
  80. SEGINI ITBBE2
  81. NN=0
  82. SEGINI ITBBE3
  83. ICC=0
  84.  
  85. IF (NSOUPO.EQ.0) GO TO 12
  86. C
  87. C ... BOUCLE SUR LES SOUS CHPO POUR REMPLIR DES TABLES DE DIMENSION
  88. DO 1103 ISOU=1,NSOUPO
  89. MSOUPO=IPCHP(ISOU)
  90. C WRITE(6,*)' LOOP ISOU MSOUPO ',ISOU,MSOUPO
  91. N=0
  92. NC=0
  93. IF (MSOUPO.EQ.0 ) GO TO 15
  94. SEGACT MSOUPO
  95. NC=NOCOMP(/2)
  96. C WRITE(6,*)' NC IPOVAL ',NC,IPOVAL
  97. MPOVAL=IPOVAL
  98. C write(6,*) ' mpoval ' , mpoval
  99. IF (MPOVAL.EQ.0) GO TO 16
  100. SEGACT MPOVAL
  101. N=VPOCHA(/1)
  102. C NC=VPOCHA(/2)
  103. 16 IVA=IGEOC
  104. ITABE1(3*ISOU -2)=IVA
  105. ITABE1(3*ISOU -1)=N
  106. ITABE1(3*ISOU )=NC
  107. NM=NM+NC
  108. NN=NM
  109. C write(6,*) ' nc n iva ' , nc , n , iva
  110. SEGADJ ITBBM1,itbbc1,ITBBE2
  111. DO 1102 IC=1,NC
  112. ICC=ICC+1
  113. READ(NOCOMP(IC),FMT='(A4)') ITABM1(ICC)
  114. itabc1(icc)=nocomp(ic)
  115. ITABE2(ICC)=NOHARM(IC)
  116. 1102 CONTINUE
  117. 15 CONTINUE
  118. 1103 CONTINUE
  119. C ... FIN BOUCLE SUR SOUS CHPO
  120. C ... ON ECRIT LE CHAPEAU ET LES DIMENSIONS
  121. 12 CONTINUE
  122. ILENA(1)= NSOUPO
  123. ILENA(2)= NM
  124. ILENA(3)= IFOPOI
  125. C write(6,*)'wrch iel',iel,' nsoupo ', nsoupo, ' nm',nm,'ifo',ifopoi
  126. C ... SAUVE NOMBRE D'ATTRIBUT DANS ILENA
  127. NAT = JATTRI(/1)
  128. ILENA(4)= NAT
  129. ITOTO=3
  130. IF (IONIVE .GE. 6) ITOTO=4
  131. C write(6,*) ' premier appel ecdife itoto ', itoto
  132. CALL ECDIFE(ISORTIE,ITOTO,ILENA,IFORM)
  133. C write(6,*) ' deuxieme appel ecdife nsoup3 ', nsoup3
  134. CALL ECDIFE(ISORTIE,NSOUP3,ITABE1,IFORM)
  135. C write(6,*) ' troiseme appel ecdifm nm ' , nm
  136.  
  137. IF(IONIVE .LE. 22)THEN
  138. if (iform.ne.2) CALL ECDIFM(ISORTIE,NM,ITABM1,IFORM)
  139. if (iform.eq.2) call ecdien(isortie,itbbc1,iform)
  140. ELSE
  141. C Depuis le niveau 23 on simplifie
  142. call ecdien(isortie,itbbc1,iform)
  143. ENDIF
  144.  
  145. C write(6,*) ' quatrieme appel ecdife nn ', nn
  146. CALL ECDIFE(ISORTIE,NN,ITABE2,IFORM)
  147. itabc2(1:8)=mtypoi
  148. if (ichar(itabc2(1:1)).eq.0) itabc2(1:8)=' '
  149. READ (itabc2(1:8),FMT='(2A4)') ITABM2(1),ITABM2(2)
  150. itabc2(9:80)= mochde
  151. if (ichar(itabc2(9:9)).eq.0) itabc2(9:80)=' '
  152. READ (itabc2(9:80),FMT='(18A4)') (ITABM2(I+2),I=1,18)
  153. C write(6,*) ' cinquieme appel ecdifm nm2 ' , nm2
  154. if (iform.ne.2) CALL ECDIFM (ISORTIE,NM2,ITABM2,IFORM)
  155. if (iform.eq.2) call ecdifc(isortie,itabc2,iform)
  156. C ... VALEUR DES ATTRIBUTS
  157. IF (IONIVE .GE. 6) THEN
  158. NN = NAT
  159. SEGINI ITBBE3
  160. DO 1105 I=1 , NAT
  161. ITABE3(I) = JATTRI(I)
  162. 1105 CONTINUE
  163. C write(6,*) ' sixieme appel ecdife nat ', nat
  164. CALL ECDIFE(ISORTIE,NAT,ITABE3,IFORM)
  165. ENDIF
  166. C
  167. IF (NSOUPO.EQ.0) GO TO 14
  168. C ... BOUCLE SUR LES SOUS CHPO POUR ECRIRE LES VPOCHA
  169. DO 1104 ISOU=1,NSOUPO
  170. MSOUPO=IPCHP(ISOU)
  171. C write(6,*) ' isou msoupo', isou, msoupo
  172. IF (MSOUPO.EQ.0) GO TO 1104
  173. MPOVAL=IPOVAL
  174. IF (MPOVAL.EQ.0) GO TO 114
  175. L=ITABE1(3*ISOU-1)*ITABE1(3*ISOU)
  176. C write(6,*) 'ecriture enreg ' ,6+isou
  177. CALL ECDIFR(ISORTIE,L,VPOCHA,IFORM)
  178. IF (MPOVAL.NE.0) SEGDES MPOVAL
  179. 114 SEGDES MSOUPO
  180. 1104 CONTINUE
  181. C ... FIN BOUCLE SUR SOUS CHPO
  182. 14 CONTINUE
  183. SEGSUP ITBBE1,ITBBM1,ITBBE2,itbbc1
  184. * SEGSUP ITBBE1,ITBBM1,ITBBE2
  185. SEGDES MCHPOI
  186. ENDIF
  187. C ... FIN BOUCLE SUR CHPO
  188. 1101 CONTINUE
  189. SEGSUP ITBBM2
  190. GOTO 1098
  191. C ******************************************************************
  192. 1098 CONTINUE
  193.  
  194. END
  195.  
  196.  
  197.  
  198.  

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