36
38
39
40
41#include "implicit_f.inc"
42
43
44
45 INTEGER ,INTENT(IN) :: NUMTABL
46 TYPE(TABLE_4D_) ,INTENT(IN) :: TABLE(NUMTABL)
47
48
49
50 INTEGER I,J,K,L,M,N,LEN,NPT,NDIM
51 INTEGER LDIM(4)
52 my_real,
DIMENSION(:) ,
ALLOCATABLE :: ytmp
53
54 DO n=1,numtabl
55 len = 1
57 IF (table(n)%NOTABLE <= 0) cycle
58 ndim = table(n)%NDIM
60 DO i=1,ndim
61 npt = SIZE(table(n)%X(i)%VALUES)
63 CALL write_db(table(n)%X(i)%VALUES,npt)
64 ldim(i) = npt
65 END DO
66
67 npt = ldim(1)
68 IF (ndim == 1) THEN
70 len = npt
71 ELSE IF (ndim == 2) THEN
72 len = ldim(1)*ldim(2)
73 ALLOCATE(ytmp(len))
74 m = 0
75 DO j=1,ldim(2)
76 DO i=1,npt
77 m = m+1
78 ytmp(m) = table(n)%Y2D(i,j)
79 END DO
80 END DO
82 ELSE IF (ndim == 3) THEN
83 len = ldim(1)*ldim(2)*ldim(3)
84 ALLOCATE(ytmp(len))
85 m = 0
86 DO k=1,ldim(3)
87 DO j=1,ldim(2)
88 DO i=1,npt
89 m = m+1
90 ytmp(m) = table(n)%Y3D(i,j,k)
91 END DO
92 END DO
93 END DO
95 ELSE IF (ndim == 4) THEN
96 len = ldim(1)*ldim(2)*ldim(3)*ldim(4)
97 ALLOCATE(ytmp(len))
98 m = 0
99 DO l=1,ldim(4)
100 DO k=1,ldim(3)
101 DO j=1,ldim(2)
102 DO i=1,npt
103 m = m+1
104 ytmp(m) = table(n)%Y4D(i,j,k,l)
105 END DO
106 END DO
107 END DO
108 END DO
110 END IF
111 IF (ALLOCATED(ytmp)) DEALLOCATE(ytmp)
112 END DO
113
114 RETURN
subroutine write_db(a, n)
void write_i_c(int *w, int *len)