@@ -10,8 +10,8 @@ module OAD_tape
10
10
private :: increment , dtt, itt, ltt, stt, &
11
11
init, dump_tapestats, &
12
12
dt_grow, it_grow, lt_grow, st_grow, &
13
- push_i0, push_d1, push_i1, &
14
- pop_i0, pop_d1, pop_i1, &
13
+ push_d0, push_i0, push_d1, push_i1, &
14
+ pop_d0, pop_i0, pop_d1, pop_i1, &
15
15
push_d4, push_d6, &
16
16
pop_d4, pop_d6
17
17
@@ -61,13 +61,13 @@ module OAD_tape
61
61
end interface
62
62
63
63
interface oad_tape_push
64
- module procedure push_i0
64
+ module procedure push_d0, push_i0
65
65
module procedure push_d1, push_i1
66
66
module procedure push_d4, push_d6
67
67
end interface
68
68
69
69
interface oad_tape_pop
70
- module procedure pop_i0
70
+ module procedure pop_d0, pop_i0
71
71
module procedure pop_d1, pop_i1
72
72
module procedure pop_d4, pop_d6
73
73
end interface
@@ -192,20 +192,20 @@ subroutine st_grow
192
192
oad_st_sz= oad_st_sz+ increment
193
193
end subroutine st_grow
194
194
195
+ subroutine push_d0 (v )
196
+ implicit none
197
+ double precision :: v
198
+ if (oad_dt_sz .lt. oad_dt_ptr+1 ) call oad_dt_grow()
199
+ oad_dt(oad_dt_ptr)= v; oad_dt_ptr= oad_dt_ptr+1
200
+ end subroutine push_d0
201
+
195
202
subroutine push_i0 (v )
196
203
implicit none
197
204
integer :: v
198
205
if (oad_it_sz .lt. oad_it_ptr+1 ) call oad_it_grow()
199
206
oad_it(oad_it_ptr)= v; oad_it_ptr= oad_it_ptr+1
200
207
end subroutine push_i0
201
208
202
- subroutine pop_i0 (v )
203
- implicit none
204
- integer :: v
205
- oad_it_ptr= oad_it_ptr-1
206
- v= oad_it(oad_it_ptr)
207
- end subroutine pop_i0
208
-
209
209
subroutine push_d1 (v )
210
210
implicit none
211
211
double precision :: v(:)
@@ -250,6 +250,20 @@ subroutine push_d6(v)
250
250
oad_dt_ptr= oad_dt_ptr+ chunk(1 )
251
251
end subroutine push_d6
252
252
253
+ subroutine pop_d0 (v )
254
+ implicit none
255
+ double precision :: v
256
+ oad_dt_ptr= oad_dt_ptr-1
257
+ v= oad_dt(oad_dt_ptr)
258
+ end subroutine pop_d0
259
+
260
+ subroutine pop_i0 (v )
261
+ implicit none
262
+ integer :: v
263
+ oad_it_ptr= oad_it_ptr-1
264
+ v= oad_it(oad_it_ptr)
265
+ end subroutine pop_i0
266
+
253
267
subroutine pop_d1 (v )
254
268
implicit none
255
269
double precision :: v(:)
0 commit comments