1 |
module OpenAD_tape |
2 |
implicit none |
3 |
|
4 |
private |
5 |
public :: double_tape, double_tmp_tape, & |
6 |
& double_tape_pointer, double_tape_size, & |
7 |
& integer_tape, integer_tmp_tape, & |
8 |
& integer_tape_pointer, integer_tape_size, & |
9 |
& tape_init |
10 |
|
11 |
double precision, dimension(:), allocatable :: double_tape, double_tmp_tape |
12 |
integer, dimension(:), allocatable :: integer_tape, integer_tmp_tape |
13 |
integer :: double_tape_pointer=0, integer_tape_pointer=0 |
14 |
integer :: double_tape_size=0, integer_tape_size=0 |
15 |
|
16 |
interface tape_init |
17 |
module procedure init |
18 |
end interface tape_init |
19 |
|
20 |
contains |
21 |
|
22 |
subroutine init |
23 |
double_tape_pointer=1 |
24 |
if (allocated(double_tape)) then |
25 |
deallocate(double_tape) |
26 |
end if |
27 |
double_tape_size=1048576 |
28 |
allocate(double_tape(double_tape_size)) |
29 |
integer_tape_pointer=1 |
30 |
if (allocated(integer_tape)) then |
31 |
deallocate(integer_tape) |
32 |
end if |
33 |
integer_tape_size=1048576 |
34 |
allocate(integer_tape(integer_tape_size)) |
35 |
end subroutine init |
36 |
|
37 |
end module OpenAD_tape |