Télécharger ecchpo.eso

Retour à la liste

Numérotation des lignes :

ecchpo
  1. C ECCHPO SOURCE PV090527 25/01/15 21:15:03 12125
  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. INTERR(3)=0
  99. MOTERR =NOMS(ITYPEL)
  100. CALL ERREUR(-19)
  101.  
  102. DO j=1,NPOIN
  103. idcp(NUM(1,j))=j
  104. ENDDO
  105. if (mpoval.ne.0) then
  106. segact mpoval
  107. N =NOCOMP(/1)
  108. NC=NOCOMP(/2)
  109.  
  110. INTERR(1)=MPOVAL
  111. INTERR(2)=VPOCHA(/1)
  112. INTERR(3)=VPOCHA(/2)
  113. CALL ERREUR(-372)
  114.  
  115. IF (VPOCHA(/1) .NE. NPOIN)CALL ERREUR(5)
  116.  
  117. IECRI=(NC-1)/NCREF+1
  118. iDEB=1
  119. iFIN=MIN(NC,NCREF)
  120. DO IE=1,IECRI
  121. IFI=iFIN-iDEB+1
  122. NPREF=1
  123. IF (IFI.EQ.1) NPREF=4
  124. IF (IFI.EQ.2.OR.IFI.EQ.3) NPREF=2
  125. NPMIN=MIN(NPOIN,NPREF)
  126. ILIG=(NPOIN-1)/NPREF+1
  127. IDEBP=1
  128. IFINP=MIN(NPOIN,NPREF)
  129. IF (IFOPOI.EQ.1) THEN
  130. CALL ERREUR(-24)
  131. IF (IFI.EQ.1) THEN
  132. WRITE(IOIMP,21) ((NOCOMP(j),NOHARM(j),j=iDEB,iFIN),
  133. . k=1,NPMIN)
  134. ELSE IF (IFI.EQ.2) THEN
  135. WRITE(IOIMP,22) ((NOCOMP(j),NOHARM(j),j=iDEB,iFIN),
  136. . k=1,NPMIN)
  137. ELSE IF (IFI.EQ.3) THEN
  138. WRITE(IOIMP,23) ((NOCOMP(j),NOHARM(j),j=iDEB,iFIN),
  139. . k=1,NPMIN)
  140. ELSE
  141. WRITE(IOIMP,24) ((NOCOMP(j),NOHARM(j),j=iDEB,iFIN),
  142. . k=1,NPMIN)
  143. ENDIF
  144.  
  145. ELSE
  146. CALL ERREUR(-25)
  147. IF (IFI.EQ.1) THEN
  148. WRITE(IOIMP,1) ((NOCOMP(j),j=iDEB,iFIN),k=1,NPMIN)
  149. ELSE IF (IFI.EQ.2) THEN
  150. WRITE(IOIMP,2) ((NOCOMP(j),j=iDEB,iFIN),k=1,NPMIN)
  151. ELSE IF (IFI.EQ.3) THEN
  152. WRITE(IOIMP,3) ((NOCOMP(j),j=iDEB,iFIN),k=1,NPMIN)
  153. ELSE
  154. WRITE(IOIMP,4) ((NOCOMP(j),j=iDEB,iFIN),k=1,NPMIN)
  155. ENDIF
  156. ENDIF
  157. ip=0
  158. IF (jentet.EQ.1) ilig=MIN(ilig,5)
  159. DO IL=1,ILIG
  160. IF (IERR.NE.0) RETURN
  161. ITEX=' '
  162. JH=0
  163. DO JHDD=IDEBP,IFINP
  164. JH=JH+1
  165. 183 ip=ip+1
  166. IF (idcp(ip).EQ.0.AND.ip.LT.idcp(/1)) GOTO 183
  167. jhd=idcp(ip)
  168. iWri=NUM(1,JHD)
  169. IF (iWri.NE.ip) CALL ERREUR(5)
  170. IF (IFI.EQ.1) THEN
  171. IF (JH.EQ.1) THEN
  172. WRITE(ITEX(1:26),5) iWri,(VPOCHA(JHD,j),j=iDEB,iFIN)
  173. ELSE IF(JH.EQ.2) THEN
  174. WRITE(ITEX(27:53),5) iWri,(VPOCHA(JHD,j),j=iDEB,iFIN)
  175. ELSE IF (JH.EQ.3) THEN
  176. WRITE(ITEX(54:79),5) iWri,(VPOCHA(JHD,j),j=iDEB,iFIN)
  177. ELSE IF (JH.EQ.4) THEN
  178. WRITE(ITEX(80:105),5) iWri,(VPOCHA(JHD,j),j=iDEB,iFIN)
  179. ENDIF
  180. ELSE IF (IFI.EQ.2) THEN
  181. IF (JH.EQ.1) THEN
  182. WRITE(ITEX(1:41),6) iWri,(VPOCHA(JHD,j),j=iDEB,iFIN)
  183. ELSE IF (JH.EQ.2) THEN
  184. WRITE(ITEX(42:82),6) iWri,(VPOCHA(JHD,j),j=iDEB,iFIN)
  185. ENDIF
  186. ELSE IF (IFI.EQ.3) THEN
  187. IF (JH.EQ.1) THEN
  188. WRITE(ITEX(1:56),7) iWri,(VPOCHA(JHD,j),j=iDEB,iFIN)
  189. ELSE IF (JH.EQ.2) THEN
  190. WRITE(ITEX(57:112),7) iWri,(VPOCHA(JHD,j),j=iDEB,iFIN)
  191. ENDIF
  192. ELSE
  193. WRITE(ITEX(1:133),8) iWri,(VPOCHA(JHD,j),j=iDEB,iFIN)
  194. ENDIF
  195. ENDDO
  196. IDEBP=IFINP+1
  197. IFINP=(IL+1)*NPREF
  198. IFINP=MIN(NPOIN,IFINP)
  199. WRITE(IOIMP,10) ITEX
  200. ENDDO
  201. iDEB=iFIN+1
  202. iFIN=(IE+1)*NCREF
  203. iFIN=MIN(NC,iFIN)
  204. ENDDO
  205.  
  206. else
  207. C Cas du MPOVAL = 0 ??
  208. INTERR(1)=MPOVAL
  209. INTERR(2)=0
  210. INTERR(3)=0
  211. CALL ERREUR(-372)
  212. endif
  213. ENDDO
  214.  
  215. SEGSUP,idcp
  216.  
  217. C DIFFERENTS FORMATS D'IMPRESSION
  218. 1 FORMAT(2X,4(15X,A8,3X))
  219. 2 FORMAT(2X,2(15X,A8,7X,A8,3X))
  220. 3 FORMAT(2X,2(15X,A8,7X,A8,7X,A8,3X))
  221. 4 FORMAT(12X,8(5X,A8,2X))
  222. 5 FORMAT(2X,I8,4X,1PE12.5)
  223. 6 FORMAT(2X,I8,4X,1PE12.5,3X,1PE12.5)
  224. 7 FORMAT(2X,I8,4X,1PE12.5,3X,1PE12.5,3X,1PE12.5)
  225. 8 FORMAT(2X,I8,3X,8(1X,1PE12.5,2X))
  226. 9 FORMAT(/)
  227. 10 FORMAT(A132)
  228. 21 FORMAT(2X,4(15X,A8,1X,I4))
  229. 22 FORMAT(2X,2(15X,A8,1X,I4,6X,A8,1X,I4))
  230. 23 FORMAT(2X,2(15X,A8,1X,I4,6X,A8,1X,I4,6X,A8,1X,I4))
  231. 24 FORMAT(12X,8(5X,A8,1X,I4))
  232. 25 FORMAT(//10X,' SOUS-CHAMP NUMERO ',I6,' : MSOUPO',I10,
  233. & /10X,' -------------------------------------------')
  234. 187 FORMAT(//)
  235.  
  236. RETURN
  237. END
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  

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