File: /nfs/home/0/users/jenkins/mfix.git/model/in_binary_512_mod.f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 MODULE IN_BINARY_512
24
25 CONTAINS
26
27 SUBROUTINE IN_BIN_512(IUNIT, ARRAY, N, NEXT_REC)
28
29
30
31
32
33
34 USE machine
35 IMPLICIT NONE
36
37
38
39
40
41 DOUBLE PRECISION ARRAY(*)
42
43
44 INTEGER IUNIT
45
46
47 INTEGER N
48
49
50 INTEGER NEXT_REC
51
52
53
54
55 INTEGER NWORDS
56
57
58 INTEGER L
59
60
61
62 INTEGER NSEG
63
64
65
66 INTEGER NREM
67
68
69 INTEGER LC
70
71
72 INTEGER N1 , N2
73
74
75
76 = NWORDS_DP
77 IF (N <= NWORDS) THEN
78 READ (IUNIT, REC=NEXT_REC) (ARRAY(L),L=1,N)
79 NEXT_REC = NEXT_REC + 1
80 RETURN
81 ENDIF
82
83 = N/NWORDS
84 NREM = MOD(N,NWORDS)
85 N1 = 1
86 N2 = NWORDS
87
88
89
90 DO LC = 1, NSEG
91 READ (IUNIT, REC=NEXT_REC) (ARRAY(L),L=N1,N2)
92 N1 = N1 + NWORDS
93 N2 = N2 + NWORDS
94 NEXT_REC = NEXT_REC + 1
95 END DO
96 IF (NREM /= 0) THEN
97 READ (IUNIT, REC=NEXT_REC) (ARRAY(L),L=N1,N)
98 NEXT_REC = NEXT_REC + 1
99 ENDIF
100
101 RETURN
102 END SUBROUTINE IN_BIN_512
103
104 subroutine convert_from_io_dp(arr_io,arr_internal,n)
105
106 use geometry
107 use indices
108 USE compar
109 USE functions
110
111 implicit none
112
113 double precision arr_io(*) , arr_internal(*)
114 integer n,i,j,k,ijk,ijk_io
115
116 do k = 1,kmax2
117 do j = 1,jmax2
118 do i = 1,imax2
119 ijk = funijk_gl(i,j,k)
120 ijk_io = funijk_io(i,j,k)
121 arr_internal(ijk) = arr_io(ijk_io)
122 end do
123 end do
124 end do
125
126 return
127 end subroutine convert_from_io_dp
128
129 subroutine convert_to_io_dp(arr_internal,arr_io,n)
130
131 use geometry
132 use indices
133 USE compar
134 USE functions
135
136 implicit none
137
138 double precision arr_io(*) , arr_internal(*)
139 integer n,i,j,k,ijk,ijk_io
140
141 do k = 1,kmax2
142 do j = 1,jmax2
143 do i = 1,imax2
144 ijk = funijk_gl(i,j,k)
145 ijk_io = funijk_io(i,j,k)
146 arr_io(ijk_io) = arr_internal(ijk)
147 end do
148 end do
149 end do
150
151 return
152 end subroutine convert_to_io_dp
153
154 END MODULE IN_BINARY_512
155
156
157
158