1 |
subroutine dostore( n, x, store, j ) |
2 |
c |
3 |
c arguments |
4 |
c |
5 |
integer n, i, j |
6 |
double precision x(n) |
7 |
real*4 tmpx(n) |
8 |
logical store |
9 |
|
10 |
common /xxstore/ itape, ntape, isize |
11 |
integer itape, ntape, isize |
12 |
common /mpi_parm/myid,nprocs,mystart,myend |
13 |
integer myid,nprocs,mystart,myend |
14 |
|
15 |
cph( |
16 |
cph print *, 'pathei in dostore ', |
17 |
cph & store, n, ntape, j |
18 |
cph) |
19 |
|
20 |
|
21 |
if (store) then |
22 |
do i = 1, n |
23 |
tmpx(i) = x(i) |
24 |
enddo |
25 |
!bnc may need to fix this |
26 |
open( ntape |
27 |
$ , file = 'OPWARMD' |
28 |
$ , status = 'unknown' |
29 |
$ , form = 'unformatted' |
30 |
$ , access = 'direct' |
31 |
$ , recl = isize*n |
32 |
$ ) |
33 |
write( ntape, rec=(j-1)*nprocs+myid+1) tmpx |
34 |
close(ntape) |
35 |
else |
36 |
open( ntape |
37 |
$ , file = 'OPWARMD' |
38 |
$ , status = 'unknown' |
39 |
$ , form = 'unformatted' |
40 |
$ , access = 'direct' |
41 |
$ , recl = isize*n |
42 |
$ ) |
43 |
read( ntape, rec=(j-1)*nprocs+myid+1) tmpx |
44 |
close(ntape) |
45 |
do i = 1, n |
46 |
x(i) = tmpx(i) |
47 |
enddo |
48 |
endif |
49 |
|
50 |
return |
51 |
end |