Télécharger ecchpo.eso

Retour à la liste

Numérotation des lignes :

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

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