Télécharger ecchpo.eso

Retour à la liste

Numérotation des lignes :

ecchpo
  1. C ECCHPO SOURCE PV090527 24/07/31 18:12:35 11971
  2.  
  3. C=======================================================================
  4. C= E C C H P O =
  5. C= ----------- =
  6. C= =
  7. C= Fonction : =
  8. C= ---------- =
  9. C= Impression d'un champ par points =
  10. C= =
  11. C= Parametres : (E)=Entree (S)=Sortie =
  12. C= ------------ =
  13. C= IRET (E) Pointeur sur le segment MCHPOI du champ a imprimer =
  14. C= jentet (E) =1 si on ne veut que l'entete de l'impression =
  15. C=======================================================================
  16.  
  17. SUBROUTINE ECCHPO(IRET,jentet)
  18.  
  19. IMPLICIT INTEGER(I-N)
  20. IMPLICIT REAL*8 (A-H,O-Z)
  21.  
  22.  
  23. -INC PPARAM
  24. -INC CCOPTIO
  25. -INC CCGEOME
  26. -INC SMELEME
  27. -INC SMCHPOI
  28. -INC SMCOORD
  29.  
  30. EXTERNAL LONG
  31.  
  32. SEGMENT idcp(nbpts)
  33.  
  34. CHARACTER*140 ITEX
  35.  
  36. DATA NCREF / 8 /
  37.  
  38. MCHPOI=IRET
  39. segact mchpoi
  40. NSOUPO=IPCHP(/1)
  41. NAT=JATTRI(/1)
  42.  
  43. WRITE(IOIMP,9)
  44. INTERR(1)=MCHPOI
  45. INTERR(2)=NSOUPO
  46. LL=MIN(LONG(MOCHDE),40)
  47. LL=MAX(1,LL)
  48. MOTERR=MOCHDE(1:LL)
  49. CALL ERREUR(-21)
  50. MOTERR=MTYPOI
  51. CALL ERREUR(-22)
  52.  
  53. C LIST DES ATTRIBUTS DE NATURE
  54. IF (NAT.GE.1) THEN
  55. MOTERR(1:11)='INDETERMINE'
  56. IF (JATTRI(1).EQ.1) MOTERR(1:11)='DIFFUS '
  57. IF (JATTRI(1).EQ.2) MOTERR(1:11)='DISCRET '
  58. CALL ERREUR(-289)
  59. ENDIF
  60.  
  61. C Option de calcul (on suppose que IFOPOI correspond a IFOUR)
  62. IF (IFOPOI.LE.-1) THEN
  63. MOTERR(1:32)=' PLAN '
  64. ELSE IF (IFOPOI.EQ.0) THEN
  65. MOTERR(1:32)=' AXISYMETRIQUE '
  66. ELSE IF (IFOPOI.EQ.1) THEN
  67. MOTERR(1:32)=' SERIE DE FOURIER '
  68. ELSE IF (IFOPOI.EQ.2) THEN
  69. MOTERR(1:32)=' TRIDIMENSIONNEL '
  70. ELSE IF (IFOPOI.GE.3.AND.IFOPOI.LE.11) THEN
  71. MOTERR(1:32)=' UNID PLAN '
  72. ELSE IF (IFOPOI.GE.12.AND.IFOPOI.LE.14) THEN
  73. MOTERR(1:32)=' UNID AXISYMETRIQUE '
  74. ELSE IF (IFOPOI.EQ.15) THEN
  75. MOTERR(1:32)=' UNID SPHERIQUE '
  76. ELSE IF (IFOPOI.EQ.16) THEN
  77. MOTERR(1:32)=' FREQUENTIEL '
  78. ENDIF
  79. CALL ERREUR(-23)
  80.  
  81. SEGINI,idcp
  82. DO i=1,NSOUPO
  83. MSOUPO=IPCHP(i)
  84. segact msoupo
  85. MELEME=IGEOC
  86. segact meleme
  87. MPOVAL=IPOVAL
  88. WRITE(IOIMP,25) i,MSOUPO
  89.  
  90. DO j=1,idcp(/1)
  91. idcp(j)=0
  92. ENDDO
  93. NPOIN=NUM(/2)
  94.  
  95. C MAILLAGE %i1 : %i2 element(S) de type %m1:4
  96. INTERR(1)=MELEME
  97. INTERR(2)=NPOIN
  98. MOTERR =NOMS(ITYPEL)
  99. CALL ERREUR(-19)
  100.  
  101. DO j=1,NPOIN
  102. idcp(NUM(1,j))=j
  103. ENDDO
  104. if (mpoval.ne.0) then
  105. segact mpoval
  106. N =NOCOMP(/1)
  107. NC=NOCOMP(/2)
  108.  
  109. INTERR(1)=MPOVAL
  110. INTERR(2)=VPOCHA(/1)
  111. INTERR(3)=VPOCHA(/2)
  112. CALL ERREUR(-372)
  113.  
  114. IF (VPOCHA(/1) .NE. NPOIN)CALL ERREUR(5)
  115.  
  116. IECRI=(NC-1)/NCREF+1
  117. iDEB=1
  118. iFIN=MIN(NC,NCREF)
  119. DO IE=1,IECRI
  120. IFI=iFIN-iDEB+1
  121. NPREF=1
  122. IF (IFI.EQ.1) NPREF=4
  123. IF (IFI.EQ.2.OR.IFI.EQ.3) NPREF=2
  124. NPMIN=MIN(NPOIN,NPREF)
  125. ILIG=(NPOIN-1)/NPREF+1
  126. IDEBP=1
  127. IFINP=MIN(NPOIN,NPREF)
  128. IF (IFOPOI.EQ.1) THEN
  129. CALL ERREUR(-24)
  130. IF (IFI.EQ.1) THEN
  131. WRITE(IOIMP,21) ((NOCOMP(j),NOHARM(j),j=iDEB,iFIN),
  132. . k=1,NPMIN)
  133. ELSE IF (IFI.EQ.2) THEN
  134. WRITE(IOIMP,22) ((NOCOMP(j),NOHARM(j),j=iDEB,iFIN),
  135. . k=1,NPMIN)
  136. ELSE IF (IFI.EQ.3) THEN
  137. WRITE(IOIMP,23) ((NOCOMP(j),NOHARM(j),j=iDEB,iFIN),
  138. . k=1,NPMIN)
  139. ELSE
  140. WRITE(IOIMP,24) ((NOCOMP(j),NOHARM(j),j=iDEB,iFIN),
  141. . k=1,NPMIN)
  142. ENDIF
  143.  
  144. ELSE
  145. CALL ERREUR(-25)
  146. IF (IFI.EQ.1) THEN
  147. WRITE(IOIMP,1) ((NOCOMP(j),j=iDEB,iFIN),k=1,NPMIN)
  148. ELSE IF (IFI.EQ.2) THEN
  149. WRITE(IOIMP,2) ((NOCOMP(j),j=iDEB,iFIN),k=1,NPMIN)
  150. ELSE IF (IFI.EQ.3) THEN
  151. WRITE(IOIMP,3) ((NOCOMP(j),j=iDEB,iFIN),k=1,NPMIN)
  152. ELSE
  153. WRITE(IOIMP,4) ((NOCOMP(j),j=iDEB,iFIN),k=1,NPMIN)
  154. ENDIF
  155. ENDIF
  156. ip=0
  157. IF (jentet.EQ.1) ilig=MIN(ilig,5)
  158. DO IL=1,ILIG
  159. IF (IERR.NE.0) RETURN
  160. ITEX=' '
  161. JH=0
  162. DO JHDD=IDEBP,IFINP
  163. JH=JH+1
  164. 183 ip=ip+1
  165. IF (idcp(ip).EQ.0.AND.ip.LT.idcp(/1)) GOTO 183
  166. jhd=idcp(ip)
  167. iWri=NUM(1,JHD)
  168. IF (iWri.NE.ip) CALL ERREUR(5)
  169. IF (IFI.EQ.1) THEN
  170. IF (JH.EQ.1) THEN
  171. WRITE(ITEX(1:26),5) iWri,(VPOCHA(JHD,j),j=iDEB,iFIN)
  172. ELSE IF(JH.EQ.2) THEN
  173. WRITE(ITEX(27:53),5) iWri,(VPOCHA(JHD,j),j=iDEB,iFIN)
  174. ELSE IF (JH.EQ.3) THEN
  175. WRITE(ITEX(54:79),5) iWri,(VPOCHA(JHD,j),j=iDEB,iFIN)
  176. ELSE IF (JH.EQ.4) THEN
  177. WRITE(ITEX(80:105),5) iWri,(VPOCHA(JHD,j),j=iDEB,iFIN)
  178. ENDIF
  179. ELSE IF (IFI.EQ.2) THEN
  180. IF (JH.EQ.1) THEN
  181. WRITE(ITEX(1:41),6) iWri,(VPOCHA(JHD,j),j=iDEB,iFIN)
  182. ELSE IF (JH.EQ.2) THEN
  183. WRITE(ITEX(42:82),6) iWri,(VPOCHA(JHD,j),j=iDEB,iFIN)
  184. ENDIF
  185. ELSE IF (IFI.EQ.3) THEN
  186. IF (JH.EQ.1) THEN
  187. WRITE(ITEX(1:56),7) iWri,(VPOCHA(JHD,j),j=iDEB,iFIN)
  188. ELSE IF (JH.EQ.2) THEN
  189. WRITE(ITEX(57:112),7) iWri,(VPOCHA(JHD,j),j=iDEB,iFIN)
  190. ENDIF
  191. ELSE
  192. WRITE(ITEX(1:133),8) iWri,(VPOCHA(JHD,j),j=iDEB,iFIN)
  193. ENDIF
  194. ENDDO
  195. IDEBP=IFINP+1
  196. IFINP=(IL+1)*NPREF
  197. IFINP=MIN(NPOIN,IFINP)
  198. WRITE(IOIMP,10) ITEX
  199. ENDDO
  200. iDEB=iFIN+1
  201. iFIN=(IE+1)*NCREF
  202. iFIN=MIN(NC,iFIN)
  203. ENDDO
  204.  
  205. else
  206. C Cas du MPOVAL = 0 ??
  207. INTERR(1)=MPOVAL
  208. INTERR(2)=0
  209. INTERR(3)=0
  210. CALL ERREUR(-372)
  211. endif
  212. ENDDO
  213.  
  214. SEGSUP,idcp
  215.  
  216. C DIFFERENTS FORMATS D'IMPRESSION
  217. 1 FORMAT(2X,4(15X,A8,3X))
  218. 2 FORMAT(2X,2(15X,A8,7X,A8,3X))
  219. 3 FORMAT(2X,2(15X,A8,7X,A8,7X,A8,3X))
  220. 4 FORMAT(12X,8(5X,A8,2X))
  221. 5 FORMAT(2X,I8,4X,1PE12.5)
  222. 6 FORMAT(2X,I8,4X,1PE12.5,3X,1PE12.5)
  223. 7 FORMAT(2X,I8,4X,1PE12.5,3X,1PE12.5,3X,1PE12.5)
  224. 8 FORMAT(2X,I8,3X,8(1X,1PE12.5,2X))
  225. 9 FORMAT(/)
  226. 10 FORMAT(A132)
  227. 21 FORMAT(2X,4(15X,A8,1X,I4))
  228. 22 FORMAT(2X,2(15X,A8,1X,I4,6X,A8,1X,I4))
  229. 23 FORMAT(2X,2(15X,A8,1X,I4,6X,A8,1X,I4,6X,A8,1X,I4))
  230. 24 FORMAT(12X,8(5X,A8,1X,I4))
  231. 25 FORMAT(//10X,' SOUS-CHAMP NUMERO ',I6,' : MSOUPO',I10,
  232. & /10X,' -------------------------------------------')
  233. 187 FORMAT(//)
  234.  
  235. RETURN
  236. END
  237.  
  238.  
  239.  
  240.  
  241.  

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