Télécharger oooaph.eso

Retour à la liste

Numérotation des lignes :

oooaph
  1. C OOOAPH SOURCE PV090527 26/04/24 08:23:00 12524
  2. CMODE 92/03/19 15:37:03 STAN
  3. SUBROUTINE OOOAPH (HNOMV,PSEG,PARCH,HNOMVA,IDIM,NDIM,
  4. * NBMAX)
  5. C---------------------------------------------------------------------
  6. C ARCHIVAGE DE SEGMENT
  7. C HNOMV : NOM DU TABLEAU OU DE LA VARIABLE SIMPLE
  8. C PSEG : SEGMENT ORIGINE
  9. C PARCH : SEGMENT ARCHIVE
  10. C HNOMVA : TABLEAU TRANSMIS
  11. C IDIM(NDIM) : DIMENSIONS DU TABLEAU
  12. C NDIM : NOMBRE DE DIMENSIONS D'UN TABLEAU
  13. C NBMAX : NOMBRE MAX DE VALEURS A ARCHIVER
  14. C
  15. C LONGUEURS:
  16. C =========
  17. C LOGIQUE: 5
  18. C INTEGER: 11 INTEGER*2 : 6 INTEGER*1 : 4
  19. C REAL*4 : 16 REAL*8 : 25 REAL*16 : 42
  20. C COMPLEX*8 : 35 COMPLEX*16: 53 COMPLEX*32 : 87
  21. C
  22. C H_MULLEMAN LE 18/8/1991
  23. C-----------------------------------------------------------------------
  24. %INC IOOARC
  25. %INC IOOCH
  26. %INC IOOCH2
  27. C
  28. C-----------------------------------------------------------------------
  29. C
  30. KAS=CHARACTER
  31. GO TO 20
  32. ENTRY OOOAPL (HNOMV,PSEG,PARCH,LNOMVA,IDIM,NDIM,NBMAX)
  33. KAS=LOGICAL
  34. LLONG=1
  35. GO TO 20
  36. ENTRY OOOAPM (HNOMV,PSEG,PARCH,MNOMVA,IDIM,NDIM,NBMAX)
  37. KAS=LOGICAL_2
  38. LLONG=1
  39. GO TO 20
  40. ENTRY OOOAPN (HNOMV,PSEG,PARCH,NNOMVA,IDIM,NDIM,NBMAX)
  41. KAS=LOGICAL_1
  42. LLONG=1
  43. GO TO 20
  44. ENTRY OOOAPI (HNOMV,PSEG,PARCH,INOMVA,IDIM,NDIM,NBMAX)
  45. KAS=INTEGER
  46. LLONG=11
  47. GO TO 20
  48. ENTRY OOOAPJ (HNOMV,PSEG,PARCH,JNOMVA,IDIM,NDIM,NBMAX)
  49. KAS=INTEGER_2
  50. LLONG=6
  51. GO TO 20
  52. ENTRY OOOAPK (HNOMV,PSEG,PARCH,KNOMVA,IDIM,NDIM,NBMAX)
  53. KAS=INTEGER_1
  54. LLONG=4
  55. GO TO 20
  56. ENTRY OOOAPR (HNOMV,PSEG,PARCH,RNOMVA,IDIM,NDIM,NBMAX)
  57. KAS=REAL_4
  58. LLONG=16
  59. GO TO 20
  60. ENTRY OOOAPD (HNOMV,PSEG,PARCH,DNOMVA,IDIM,NDIM,NBMAX)
  61. KAS=REAL_8
  62. LLONG=25
  63. GO TO 20
  64. ENTRY OOOAPQ (HNOMV,PSEG,PARCH,QNOMVA,IDIM,NDIM,NBMAX)
  65. KAS=REAL_16
  66. LLONG=42
  67. GO TO 20
  68. ENTRY OOOAPC (HNOMV,PSEG,PARCH,CNOMVA,IDIM,NDIM,NBMAX)
  69. KAS=COMPLEX
  70. LLONG=32
  71. GO TO 20
  72. ENTRY OOOAPY (HNOMV,PSEG,PARCH,YNOMVA,IDIM,NDIM,NNMAX)
  73. KAS=COMPLEX_16
  74. LLONG=50
  75. GO TO 20
  76. ENTRY OOOAPZ (HNOMV,PSEG,PARCH,ZNOMVA,IDIM,NDIM,NBMAX)
  77. KAS=COMPLEX_32
  78. LLONG=84
  79. GO TO 20
  80. ENTRY OOOAPP (HNOMV,PSEG,PARCH,INOMVA,IDIM,NDIM,NBMAX)
  81. KAS=POINTEUR
  82. LLONG=11
  83. C
  84. 20 CONTINUE
  85. C
  86. C
  87. NMAX=1
  88. IF(NDIM.EQ.0) THEN
  89. ELSE
  90. C*
  91. IF (KAS.EQ.CHARACTER) THEN
  92. IF (NDIM.EQ.1) THEN
  93. ELSE
  94. DO I=2,NDIM
  95. NMAX=NMAX*IDIM(I)
  96. ENDDO
  97. ENDIF
  98. C
  99. ELSE
  100. DO I=1,NDIM
  101. NMAX=NMAX*IDIM(I)
  102. ENDDO
  103. ENDIF
  104. ENDIF
  105. C
  106. IF (NMAX.GE.NBMAX) NMAX=NBMAX
  107. IF (KAS.EQ.CHARACTER) THEN
  108. LLONG=0
  109. DO I=1,NMAX
  110. LLONG = LLONG+LEN(HNOMVA(I))
  111. ENDDO
  112. ELSE
  113. LLONG=LLONG*NMAX
  114. ENDIF
  115. IF (INDICE+LLONG.GT.LOOK)THEN
  116. LOOK=LOOK+MAX(2000,LLONG)
  117. SEGADJ , PARCH
  118. ENDIF
  119. DO I=1,NMAX
  120. CASE ,KAS
  121. WHEN , LOGICAL , LOGICAL_2 , LOGICAL_1
  122. CH5='FALSE'
  123. IF (KAS.EQ.LOGICAL) THEN
  124. IF(LNOMVA(I)) CH5='TRUE '
  125. ELSEIF (KAS.EQ.LOGICAL_2) THEN
  126. IF(MNOMVA(I)) CH5='TRUE '
  127. ELSE
  128. IF(NNOMVA(I)) CH5='TRUE '
  129. ENDIF
  130. PARCH.CHARIV(INDICE:INDICE)=CH5
  131. INDICE=INDICE+1
  132. C
  133. WHEN , INTEGER , POINTEUR
  134. WRITE(CH11,FMT='(I11)') INOMVA(I)
  135. C
  136. PARCH.CHARIV(INDICE:INDICE+10)=CH11
  137. INDICE=INDICE+11
  138. C
  139. WHEN , INTEGER_2
  140. WRITE(CH6,FMT='(I6)') JNOMVA(I)
  141. PARCH.CHARIV(INDICE:INDICE+5)=CH6
  142. INDICE=INDICE+6
  143. C
  144. WHEN , INTEGER_1
  145. WRITE(CH4,FMT='(I4)') KNOMVA(I)
  146. PARCH.CHARIV(INDICE:INDICE+3)=CH4
  147. INDICE=INDICE+4
  148. C
  149. WHEN , REAL_4
  150. WRITE(CH16,FMT='(E16.9)') RNOMVA(I)
  151. PARCH.CHARIV(INDICE:INDICE+15)=CH16
  152. INDICE=INDICE+16
  153. C
  154. WHEN , REAL_8
  155. WRITE(CH25,FMT='(E25.18)') DNOMVA(I)
  156. PARCH.CHARIV(INDICE:INDICE+24)=CH25
  157. INDICE=INDICE+25
  158. C
  159. WHEN , REAL_16
  160. WRITE(CH42,FMT='(E42.35)') QNOMVA(I)
  161. PARCH.CHARIV(INDICE:INDICE+41)=CH42
  162. INDICE=INDICE+42
  163. C
  164. WHEN , COMPLEX
  165. WRITE(CH16,FMT='(E16.9)') CNOMVA(1,I)
  166. PARCH.CHARIV(INDICE:INDICE+15)=CH16
  167. INDICE=INDICE+16
  168. WRITE(CH16,FMT='(E16.9)') CNOMVA(2,I)
  169. PARCH.CHARIV(INDICE:INDICE+15)=CH16
  170. INDICE=INDICE+16
  171. WHEN , COMPLEX_16
  172. WRITE(CH25,FMT='(E25.18)') YNOMVA(1,I)
  173. PARCH.CHARIV(INDICE:INDICE+24)=CH25
  174. INDICE=INDICE+25
  175. WRITE(CH25,FMT='(E25.18)') YNOMVA(2,I)
  176. PARCH.CHARIV(INDICE:INDICE+24)=CH25
  177. INDICE=INDICE+25
  178. WHEN , COMPLEX_32
  179. WRITE(CH42,FMT='(E42.35)') ZNOMVA(1,I)
  180. PARCH.CHARIV(INDICE:INDICE+41)=CH42
  181. INDICE=INDICE+42
  182. WRITE(CH42,FMT='(E42.35)') ZNOMVA(2,I)
  183. PARCH.CHARIV(INDICE:INDICE+41)=CH42
  184. INDICE=INDICE+42
  185. WHEN , CHARACTER
  186. LONG=LEN(HNOMVA(I))
  187. PARCH.CHARIV(INDICE:INDICE+LONG-1)=HNOMVA(I)(1:LONG)
  188. INDICE=INDICE+LONG
  189. ENDCASE
  190. ENDDO
  191. RETURN
  192. END
  193.  
  194.  

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