/[MITgcm]/MITgcm/tools/OAD_support/ad_inline.F
ViewVC logotype

Annotation of /MITgcm/tools/OAD_support/ad_inline.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.4 - (hide annotations) (download)
Wed Apr 24 14:55:24 2013 UTC (11 years ago) by jahn
Branch: MAIN
CVS Tags: checkpoint64y, checkpoint64x, checkpoint64z, checkpoint64o, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint64n, checkpoint64g, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65l, checkpoint65m, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint65, checkpoint64j, checkpoint64m, checkpoint64l
Changes since 1.3: +1 -1 lines
fix typo

1 heimbach 1.1 C taping --------------------------------------------
2    
3    
4     subroutine push_s0(x)
5     C $OpenAD$ INLINE DECLS
6 utke 1.2 use OAD_tape
7 heimbach 1.1 implicit none
8     double precision :: x
9     C $OpenAD$ END DECLS
10     if(oad_dt_sz .lt. oad_dt_ptr) call oad_dt_grow()
11     oad_dt(oad_dt_ptr)=x; oad_dt_ptr=oad_dt_ptr+1
12     end subroutine
13    
14     subroutine pop_s0(x)
15     C $OpenAD$ INLINE DECLS
16 utke 1.2 use OAD_tape
17 heimbach 1.1 implicit none
18     double precision :: x
19     C $OpenAD$ END DECLS
20     oad_dt_ptr=oad_dt_ptr-1
21     x=oad_dt(oad_dt_ptr)
22     end subroutine
23    
24 utke 1.2 subroutine push_s1(x)
25     C $OpenAD$ INLINE DECLS
26     use OAD_tape
27     implicit none
28     double precision :: x(:)
29     C $OpenAD$ END DECLS
30     oad_chunk_size=size(x,1)
31     if(oad_dt_sz .lt. oad_dt_ptr+oad_chunk_size)
32     + call oad_dt_grow()
33     oad_dt(oad_dt_ptr:oad_dt_ptr+oad_chunk_size-1)=
34     +x
35     oad_dt_ptr=oad_dt_ptr+oad_chunk_size
36     end subroutine
37    
38     subroutine pop_s1(x)
39     C $OpenAD$ INLINE DECLS
40     use OAD_tape
41     implicit none
42     double precision :: x(:)
43     C $OpenAD$ END DECLS
44     oad_chunk_size=size(x,1)
45     oad_dt_ptr=oad_dt_ptr-oad_chunk_size
46     x=oad_dt(oad_dt_ptr:oad_dt_ptr+oad_chunk_size-1)
47     end subroutine
48    
49     subroutine push_s2(x)
50     C $OpenAD$ INLINE DECLS
51     use OAD_tape
52     implicit none
53     double precision :: x(:,:)
54     C $OpenAD$ END DECLS
55     oad_chunk_size=size(x,1)*size(x,2)
56     if(oad_dt_sz .lt. oad_dt_ptr+oad_chunk_size)
57     + call oad_dt_grow()
58     oad_dt(oad_dt_ptr:oad_dt_ptr+oad_chunk_size-1)=
59     +reshape(x,(/oad_chunk_size/))
60     oad_dt_ptr=oad_dt_ptr+oad_chunk_size
61     end subroutine
62    
63     subroutine pop_s2(x)
64     C $OpenAD$ INLINE DECLS
65     use OAD_tape
66     implicit none
67     double precision :: x(:,:)
68     C $OpenAD$ END DECLS
69     oad_chunk_size=size(x,1)*size(x,2)
70     oad_dt_ptr=oad_dt_ptr-oad_chunk_size
71     x=reshape(oad_dt(oad_dt_ptr:oad_dt_ptr+oad_chunk_size-1),
72     +shape(x))
73     end subroutine
74    
75 heimbach 1.1 subroutine apush(x)
76     C $OpenAD$ INLINE DECLS
77 utke 1.2 use OAD_tape
78     use OAD_active
79 heimbach 1.1 implicit none
80     type(active) :: x
81     C $OpenAD$ END DECLS
82     if(oad_dt_sz .lt. oad_dt_ptr) call oad_dt_grow()
83     oad_dt(oad_dt_ptr)=x%v; oad_dt_ptr=oad_dt_ptr+1
84     end subroutine
85    
86     subroutine apop(x)
87     C $OpenAD$ INLINE DECLS
88 utke 1.2 use OAD_tape
89     use OAD_active
90 heimbach 1.1 implicit none
91     type(active) :: x
92     C $OpenAD$ END DECLS
93     oad_dt_ptr=oad_dt_ptr-1
94     x%v=oad_dt(oad_dt_ptr)
95     end subroutine
96    
97     subroutine push_i_s0(x)
98     C $OpenAD$ INLINE DECLS
99 utke 1.2 use OAD_tape
100 heimbach 1.1 implicit none
101     integer :: x
102     C $OpenAD$ END DECLS
103     if(oad_it_sz .lt. oad_it_ptr) call oad_it_grow()
104     oad_it(oad_it_ptr)=x; oad_it_ptr=oad_it_ptr+1
105     end subroutine
106    
107     subroutine pop_i_s0(x)
108     C $OpenAD$ INLINE DECLS
109 utke 1.2 use OAD_tape
110 heimbach 1.1 implicit none
111     integer :: x
112     C $OpenAD$ END DECLS
113     oad_it_ptr=oad_it_ptr-1
114     x=oad_it(oad_it_ptr)
115     end subroutine
116    
117 utke 1.2 subroutine push_i_s1(x)
118     C $OpenAD$ INLINE DECLS
119     use OAD_tape
120     implicit none
121     integer :: x(:)
122     C $OpenAD$ END DECLS
123     oad_chunk_size=size(x,1)
124     if(oad_it_sz .lt. oad_it_ptr+oad_chunk_size)
125     +call oad_it_grow()
126     oad_it(oad_it_ptr:oad_it_ptr+oad_chunk_size-1)=
127     +x
128     oad_it_ptr=oad_it_ptr+oad_chunk_size
129     end subroutine
130    
131     subroutine pop_i_s1(x)
132     C $OpenAD$ INLINE DECLS
133     use OAD_tape
134     implicit none
135     integer :: x(:)
136     C $OpenAD$ END DECLS
137     oad_chunk_size=size(x,1)
138     oad_it_ptr=oad_it_ptr-oad_chunk_size
139     x=oad_it(oad_it_ptr:oad_it_ptr+oad_chunk_size-1)
140     end subroutine
141    
142     subroutine push_i_s2(x)
143     C $OpenAD$ INLINE DECLS
144     use OAD_tape
145     implicit none
146     integer :: x(:,:)
147     C $OpenAD$ END DECLS
148     oad_chunk_size=size(x,1)*size(x,2)
149     if(oad_it_sz .lt. oad_it_ptr+oad_chunk_size)
150     + call oad_it_grow()
151     oad_it(oad_it_ptr:oad_it_ptr+oad_chunk_size-1)=
152     +reshape(x,(/oad_chunk_size/))
153     oad_it_ptr=oad_it_ptr+oad_chunk_size
154     end subroutine
155    
156     subroutine pop_i_s2(x)
157     C $OpenAD$ INLINE DECLS
158     use OAD_tape
159     implicit none
160     integer :: x(:,:)
161     C $OpenAD$ END DECLS
162     oad_chunk_size=size(x,1)*size(x,2)
163     oad_it_ptr=oad_it_ptr-oad_chunk_size
164     x=reshape(oad_it(oad_it_ptr:oad_it_ptr+oad_chunk_size-1),
165     +shape(x))
166     end subroutine
167    
168 heimbach 1.1 subroutine push_b(x)
169     C $OpenAD$ INLINE DECLS
170 utke 1.2 use OAD_tape
171 heimbach 1.1 implicit none
172     logical :: x
173     C $OpenAD$ END DECLS
174     if(oad_lt_sz .lt. oad_lt_ptr) call oad_lt_grow()
175     oad_lt(oad_lt_ptr)=x; oad_lt_ptr=oad_lt_ptr+1
176     end subroutine
177    
178     subroutine pop_b(x)
179     C $OpenAD$ INLINE DECLS
180 utke 1.2 use OAD_tape
181 heimbach 1.1 implicit none
182     logical :: x
183     C $OpenAD$ END DECLS
184     oad_lt_ptr=oad_lt_ptr-1
185     x=oad_lt(oad_lt_ptr)
186     end subroutine
187    
188 utke 1.3 subroutine push_s(s)
189 heimbach 1.1 C $OpenAD$ INLINE DECLS
190 utke 1.2 use OAD_tape
191 heimbach 1.1 implicit none
192 utke 1.3 character*(80) :: s
193 heimbach 1.1 C $OpenAD$ END DECLS
194     if(oad_st_sz .lt. oad_st_ptr) call oad_st_grow()
195 utke 1.3 oad_st(oad_st_ptr)=s; oad_st_ptr=oad_st_ptr+1
196 heimbach 1.1 end subroutine
197    
198 utke 1.3 subroutine pop_s(s)
199 heimbach 1.1 C $OpenAD$ INLINE DECLS
200 utke 1.2 use OAD_tape
201 heimbach 1.1 implicit none
202 utke 1.3 character*(80) :: s
203 heimbach 1.1 C $OpenAD$ END DECLS
204     oad_st_ptr=oad_st_ptr-1
205 utke 1.3 s=oad_st(oad_st_ptr)
206 heimbach 1.1 end subroutine
207 utke 1.2
208     C ----------------------- Propagation -----------------------
209    
210 heimbach 1.1 subroutine saxpy(a,x,y)
211     C $OpenAD$ INLINE DECLS
212 utke 1.2 use OAD_active
213 utke 1.3 implicit none
214 heimbach 1.1 double precision, intent(in) :: a
215     type(active), intent(in) :: x
216     type(active), intent(inout) :: y
217     C $OpenAD$ END DECLS
218     y%d=y%d+x%d*(a)
219     end subroutine
220    
221     subroutine zeroderiv(x)
222     C $OpenAD$ INLINE DECLS
223 utke 1.2 use OAD_active
224 utke 1.3 implicit none
225 heimbach 1.1 type(active), intent(out) :: x
226     C $OpenAD$ END DECLS
227     x%d=0.0d0
228     end subroutine
229    
230     subroutine setderiv(y,x)
231     C $OpenAD$ INLINE DECLS
232 utke 1.2 use OAD_active
233 utke 1.3 implicit none
234 heimbach 1.1 type(active), intent(out) :: x
235     type(active), intent(in) :: y
236     C $OpenAD$ END DECLS
237     x%d=y%d
238     end subroutine
239    
240     subroutine incderiv(y,x)
241     C $OpenAD$ INLINE DECLS
242 utke 1.2 use OAD_active
243 utke 1.3 implicit none
244 heimbach 1.1 type(active), intent(out) :: x
245     type(active), intent(in) :: y
246     C $OpenAD$ END DECLS
247     x%d=x%d+y%d
248     end subroutine
249    
250     subroutine decderiv(y,x)
251     C $OpenAD$ INLINE DECLS
252 utke 1.2 use OAD_active
253 utke 1.3 implicit none
254 heimbach 1.1 type(active), intent(out) :: x
255     type(active), intent(in) :: y
256     C $OpenAD$ END DECLS
257     x%d = x%d - y%d
258     end subroutine decderiv
259    
260     C Checkpointing stuff ---------------------------------------
261    
262     C reals -----------------------------------------------------
263     subroutine cp_arg_store_real_scalar(x)
264     C $OpenAD$ INLINE DECLS
265 utke 1.3 use OAD_cp
266     implicit none
267     double precision :: x
268 heimbach 1.1 C $OpenAD$ END DECLS
269     #ifdef OAD_DEBUG_CP
270     write(standardmessageunit,*)'OAD: cp write x ', x
271     #endif
272 utke 1.2 write(unit=cp_io_unit) x
273 heimbach 1.1 end subroutine
274    
275     subroutine cp_arg_restore_real_scalar(x)
276     C $OpenAD$ INLINE DECLS
277 utke 1.3 use OAD_cp
278     implicit none
279     double precision :: x
280 heimbach 1.1 C $OpenAD$ END DECLS
281 utke 1.2 read(unit=cp_io_unit) x
282 heimbach 1.1 #ifdef OAD_DEBUG_CP
283     write(standardmessageunit,*)'OAD: cp read x ', x
284     #endif
285     end subroutine
286    
287     subroutine cp_arg_store_real_scalar_a(x)
288     C $OpenAD$ INLINE DECLS
289 utke 1.3 use OAD_active
290     use OAD_cp
291     implicit none
292     type(active) :: x
293 heimbach 1.1 C $OpenAD$ END DECLS
294     #ifdef OAD_DEBUG_CP
295     write(standardmessageunit,*)'OAD: cp write x ', x%v
296     #endif
297 utke 1.2 write(unit=cp_io_unit) x%v
298 heimbach 1.1 end subroutine
299    
300     subroutine cp_arg_restore_real_scalar_a(x)
301     C $OpenAD$ INLINE DECLS
302 utke 1.3 use OAD_active
303     use OAD_cp
304     implicit none
305     type(active) :: x
306 heimbach 1.1 C $OpenAD$ END DECLS
307 utke 1.2 read(unit=cp_io_unit) x%v
308 heimbach 1.1 #ifdef OAD_DEBUG_CP
309     write(standardmessageunit,*)'OAD: cp read x ', x%v
310     #endif
311     end subroutine
312 utke 1.3
313 heimbach 1.1 subroutine cp_arg_store_real_vector(x)
314     C $OpenAD$ INLINE DECLS
315 utke 1.3 use OAD_cp
316     implicit none
317     double precision, dimension(:) :: x
318 heimbach 1.1 C $OpenAD$ END DECLS
319     #ifdef OAD_DEBUG_CP
320     write(standardmessageunit,*)'OAD: cp write x ', x(1)
321     #endif
322 utke 1.2 write(unit=cp_io_unit) x
323 heimbach 1.1 end subroutine
324    
325     subroutine cp_arg_restore_real_vector(x)
326     C $OpenAD$ INLINE DECLS
327 utke 1.3 use OAD_cp
328     implicit none
329     double precision, dimension(:) :: x
330 heimbach 1.1 C $OpenAD$ END DECLS
331 utke 1.2 read(unit=cp_io_unit) x
332 heimbach 1.1 #ifdef OAD_DEBUG_CP
333     write(standardmessageunit,*)'OAD: cp read x ', x(1)
334     #endif
335     end subroutine
336    
337     subroutine cp_arg_store_real_vector_a(x)
338     C $OpenAD$ INLINE DECLS
339 utke 1.3 use OAD_active
340     use OAD_cp
341     implicit none
342     type(active), dimension(:) :: x
343 heimbach 1.1 C $OpenAD$ END DECLS
344     #ifdef OAD_DEBUG_CP
345     write(standardmessageunit,*)'OAD: cp write x ', x(1)%v
346     #endif
347 utke 1.2 write(unit=cp_io_unit) x%v
348 heimbach 1.1 end subroutine
349    
350     subroutine cp_arg_restore_real_vector_a(x)
351     C $OpenAD$ INLINE DECLS
352 utke 1.3 use OAD_active
353     use OAD_cp
354     implicit none
355     type(active), dimension(:) :: x
356 heimbach 1.1 C $OpenAD$ END DECLS
357 utke 1.2 read(unit=cp_io_unit) x%v
358 heimbach 1.1 #ifdef OAD_DEBUG_CP
359     write(standardmessageunit,*)'OAD: cp read x ', x(1)%v
360     #endif
361     end subroutine
362    
363     subroutine cp_arg_store_real_matrix(x)
364     C $OpenAD$ INLINE DECLS
365 utke 1.3 use OAD_cp
366     implicit none
367     double precision, dimension(:,:) :: x
368 heimbach 1.1 C $OpenAD$ END DECLS
369     #ifdef OAD_DEBUG_CP
370     write(standardmessageunit,*)'OAD: cp write x ', x(1,1)
371     #endif
372 utke 1.2 write(unit=cp_io_unit) x
373 heimbach 1.1 end subroutine
374    
375     subroutine cp_arg_restore_real_matrix(x)
376     C $OpenAD$ INLINE DECLS
377 utke 1.3 use OAD_cp
378     implicit none
379     double precision, dimension(:,:) :: x
380 heimbach 1.1 C $OpenAD$ END DECLS
381 utke 1.2 read(unit=cp_io_unit) x
382 heimbach 1.1 #ifdef OAD_DEBUG_CP
383     write(standardmessageunit,*)'OAD: cp read x ', x(1,1)
384     #endif
385     end subroutine
386    
387     subroutine cp_arg_store_real_matrix_a(x)
388     C $OpenAD$ INLINE DECLS
389 utke 1.3 use OAD_active
390     use OAD_cp
391     implicit none
392     type(active), dimension(:,:) :: x
393 heimbach 1.1 C $OpenAD$ END DECLS
394     #ifdef OAD_DEBUG_CP
395     write(standardmessageunit,*)'OAD: cp write x ', x(1,1)%v
396     #endif
397 utke 1.2 write(unit=cp_io_unit) x%v
398 heimbach 1.1 end subroutine
399    
400     subroutine cp_arg_restore_real_matrix_a(x)
401     C $OpenAD$ INLINE DECLS
402 utke 1.3 use OAD_active
403     use OAD_cp
404     implicit none
405     type(active), dimension(:,:) :: x
406 heimbach 1.1 C $OpenAD$ END DECLS
407 utke 1.2 read(unit=cp_io_unit) x%v
408 heimbach 1.1 #ifdef OAD_DEBUG_CP
409 utke 1.3 write(standardmessageunit,*)'OAD: cp read x ', x(1,1)%v
410 heimbach 1.1 #endif
411     end subroutine
412    
413     subroutine cp_arg_store_real_three_tensor(x)
414     C $OpenAD$ INLINE DECLS
415 utke 1.3 use OAD_cp
416     implicit none
417     double precision, dimension(:,:,:) :: x
418 heimbach 1.1 C $OpenAD$ END DECLS
419     #ifdef OAD_DEBUG_CP
420     write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1)
421     #endif
422 utke 1.2 write(unit=cp_io_unit) x
423 heimbach 1.1 end subroutine
424    
425 utke 1.2 subroutine cp_arg_restore_real_three_tensor(x)
426 heimbach 1.1 C $OpenAD$ INLINE DECLS
427 utke 1.3 use OAD_cp
428     implicit none
429     double precision, dimension(:,:,:) :: x
430 heimbach 1.1 C $OpenAD$ END DECLS
431 utke 1.2 read(unit=cp_io_unit) x
432 heimbach 1.1 #ifdef OAD_DEBUG_CP
433 utke 1.2 write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1)
434 heimbach 1.1 #endif
435     end subroutine
436    
437 utke 1.2 subroutine cp_arg_store_real_three_tensor_a(x)
438 heimbach 1.1 C $OpenAD$ INLINE DECLS
439 utke 1.3 use OAD_active
440     use OAD_cp
441     implicit none
442     type(active), dimension(:,:,:) :: x
443 heimbach 1.1 C $OpenAD$ END DECLS
444     #ifdef OAD_DEBUG_CP
445 utke 1.2 write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1)%v
446 heimbach 1.1 #endif
447 utke 1.2 write(unit=cp_io_unit) x%v
448 heimbach 1.1 end subroutine
449    
450     subroutine cp_arg_restore_real_three_tensor_a(x)
451     C $OpenAD$ INLINE DECLS
452 utke 1.3 use OAD_active
453     use OAD_cp
454     implicit none
455     type(active), dimension(:,:,:) :: x
456 heimbach 1.1 C $OpenAD$ END DECLS
457 utke 1.3 read(unit=cp_io_unit) x%v
458 heimbach 1.1 #ifdef OAD_DEBUG_CP
459 utke 1.3 write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1)%v
460 heimbach 1.1 #endif
461     end subroutine
462    
463     subroutine cp_arg_store_real_four_tensor(x)
464     C $OpenAD$ INLINE DECLS
465 utke 1.3 use OAD_cp
466     implicit none
467     double precision, dimension(:,:,:,:) :: x
468 heimbach 1.1 C $OpenAD$ END DECLS
469     #ifdef OAD_DEBUG_CP
470     write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1)
471     #endif
472 utke 1.2 write(unit=cp_io_unit) x
473 heimbach 1.1 end subroutine
474    
475 utke 1.2 subroutine cp_arg_restore_real_four_tensor(x)
476 heimbach 1.1 C $OpenAD$ INLINE DECLS
477 utke 1.3 use OAD_cp
478     implicit none
479     double precision, dimension(:,:,:,:) :: x
480 heimbach 1.1 C $OpenAD$ END DECLS
481 utke 1.2 read(unit=cp_io_unit) x
482 heimbach 1.1 #ifdef OAD_DEBUG_CP
483 utke 1.2 write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1,1)
484 heimbach 1.1 #endif
485     end subroutine
486    
487 utke 1.2 subroutine cp_arg_store_real_four_tensor_a(x)
488 heimbach 1.1 C $OpenAD$ INLINE DECLS
489 utke 1.3 use OAD_active
490     use OAD_cp
491     implicit none
492     type(active), dimension(:,:,:,:) :: x
493 heimbach 1.1 C $OpenAD$ END DECLS
494     #ifdef OAD_DEBUG_CP
495 utke 1.2 write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1)%v
496 heimbach 1.1 #endif
497 utke 1.2 write(unit=cp_io_unit) x%v
498 heimbach 1.1 end subroutine
499    
500     subroutine cp_arg_restore_real_four_tensor_a(x)
501     C $OpenAD$ INLINE DECLS
502 utke 1.3 use OAD_active
503     use OAD_cp
504     implicit none
505     type(active), dimension(:,:,:,:) :: x
506 heimbach 1.1 C $OpenAD$ END DECLS
507 utke 1.2 read(unit=cp_io_unit) x%v
508 heimbach 1.1 #ifdef OAD_DEBUG_CP
509     write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1,1)%v
510 utke 1.3 #endif
511     end subroutine
512 heimbach 1.1
513     subroutine cp_arg_store_real_five_tensor(x)
514     C $OpenAD$ INLINE DECLS
515 utke 1.3 use OAD_cp
516     implicit none
517     double precision, dimension(:,:,:,:,:) :: x
518 heimbach 1.1 C $OpenAD$ END DECLS
519     #ifdef OAD_DEBUG_CP
520     write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1,1)
521     #endif
522 utke 1.2 write(unit=cp_io_unit) x
523 heimbach 1.1 end subroutine
524    
525 utke 1.2 subroutine cp_arg_restore_real_five_tensor(x)
526 heimbach 1.1 C $OpenAD$ INLINE DECLS
527 utke 1.3 use OAD_cp
528     implicit none
529     double precision, dimension(:,:,:,:,:) :: x
530 heimbach 1.1 C $OpenAD$ END DECLS
531 utke 1.2 read(unit=cp_io_unit) x
532 heimbach 1.1 #ifdef OAD_DEBUG_CP
533 utke 1.2 write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1,1,1)
534 heimbach 1.1 #endif
535     end subroutine
536    
537 utke 1.2 subroutine cp_arg_store_real_five_tensor_a(x)
538 heimbach 1.1 C $OpenAD$ INLINE DECLS
539 utke 1.3 use OAD_active
540     use OAD_cp
541     implicit none
542     type(active), dimension(:,:,:,:,:) :: x
543 heimbach 1.1 C $OpenAD$ END DECLS
544     #ifdef OAD_DEBUG_CP
545 utke 1.2 write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1,1)%v
546 heimbach 1.1 #endif
547 utke 1.2 write(unit=cp_io_unit) x%v
548 heimbach 1.1 end subroutine
549    
550     subroutine cp_arg_restore_real_five_tensor_a(x)
551     C $OpenAD$ INLINE DECLS
552 utke 1.3 use OAD_active
553     use OAD_cp
554     implicit none
555     type(active), dimension(:,:,:,:,:) :: x
556 heimbach 1.1 C $OpenAD$ END DECLS
557 utke 1.2 read(unit=cp_io_unit) x%v
558 heimbach 1.1 #ifdef OAD_DEBUG_CP
559     write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1,1,1)%v
560     #endif
561     end subroutine
562    
563 utke 1.3 subroutine cp_arg_store_real_six_tensor(x)
564     C $OpenAD$ INLINE DECLS
565     use OAD_cp
566     implicit none
567     double precision, dimension(:,:,:,:,:,:) :: x
568     C $OpenAD$ END DECLS
569     #ifdef OAD_DEBUG_CP
570     write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1,1,1)
571     #endif
572     write(unit=cp_io_unit) x
573     end subroutine
574    
575     subroutine cp_arg_restore_real_six_tensor(x)
576     C $OpenAD$ INLINE DECLS
577     use OAD_cp
578     implicit none
579     double precision, dimension(:,:,:,:,:,:) :: x
580     C $OpenAD$ END DECLS
581     read(unit=cp_io_unit) x
582     #ifdef OAD_DEBUG_CP
583     write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1,1,1,1)
584     #endif
585     end subroutine
586    
587     subroutine cp_arg_store_real_six_tensor_a(x)
588     C $OpenAD$ INLINE DECLS
589     use OAD_active
590     use OAD_cp
591     implicit none
592     type(active), dimension(:,:,:,:,:,:) :: x
593     C $OpenAD$ END DECLS
594     #ifdef OAD_DEBUG_CP
595     write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1,1,1)%v
596     #endif
597     write(unit=cp_io_unit) x%v
598     end subroutine
599    
600     subroutine cp_arg_restore_real_six_tensor_a(x)
601     C $OpenAD$ INLINE DECLS
602     use OAD_active
603     use OAD_cp
604     implicit none
605     type(active), dimension(:,:,:,:,:,:) :: x
606     C $OpenAD$ END DECLS
607     read(unit=cp_io_unit) x%v
608     #ifdef OAD_DEBUG_CP
609     write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1,1,1,1)%v
610     #endif
611     end subroutine
612 heimbach 1.1
613     C integers -----------------------------------------------------
614 utke 1.3 subroutine cp_arg_store_integer_scalar(i)
615 heimbach 1.1 C $OpenAD$ INLINE DECLS
616 utke 1.3 use OAD_cp
617     implicit none
618     integer :: i
619 heimbach 1.1 C $OpenAD$ END DECLS
620     #ifdef OAD_DEBUG_CP
621 utke 1.3 write(standardmessageunit,*)'OAD: cp write i ', i
622 heimbach 1.1 #endif
623 utke 1.3 write(unit=cp_io_unit) i
624 heimbach 1.1 end subroutine
625    
626 utke 1.3 subroutine cp_arg_restore_integer_scalar(i)
627 heimbach 1.1 C $OpenAD$ INLINE DECLS
628 utke 1.3 use OAD_cp
629     implicit none
630     integer :: i
631 heimbach 1.1 C $OpenAD$ END DECLS
632 utke 1.3 read(unit=cp_io_unit) i
633 heimbach 1.1 #ifdef OAD_DEBUG_CP
634 utke 1.3 write(standardmessageunit,*)'OAD: cp read i ', i
635 heimbach 1.1 #endif
636     end subroutine
637    
638 utke 1.3 subroutine cp_arg_store_integer_vector(i)
639 heimbach 1.1 C $OpenAD$ INLINE DECLS
640 utke 1.3 use OAD_cp
641     implicit none
642     integer, dimension(:) :: i
643 heimbach 1.1 C $OpenAD$ END DECLS
644     #ifdef OAD_DEBUG_CP
645 utke 1.3 write(standardmessageunit,*)'OAD: cp write i ', i(1)
646 heimbach 1.1 #endif
647 utke 1.3 write(unit=cp_io_unit) i
648 heimbach 1.1 end subroutine
649    
650 utke 1.3 subroutine cp_arg_restore_integer_vector(i)
651 heimbach 1.1 C $OpenAD$ INLINE DECLS
652 utke 1.3 use OAD_cp
653     implicit none
654     integer, dimension(:) :: i
655 heimbach 1.1 C $OpenAD$ END DECLS
656 utke 1.3 read(unit=cp_io_unit) i
657 heimbach 1.1 #ifdef OAD_DEBUG_CP
658 utke 1.3 write(standardmessageunit,*)'OAD: cp read i ', i(1)
659 heimbach 1.1 #endif
660     end subroutine
661    
662 utke 1.3 subroutine cp_arg_store_integer_matrix(i)
663 heimbach 1.1 C $OpenAD$ INLINE DECLS
664 utke 1.3 use OAD_cp
665     implicit none
666     integer, dimension(:,:) :: i
667 heimbach 1.1 C $OpenAD$ END DECLS
668     #ifdef OAD_DEBUG_CP
669 utke 1.3 write(standardmessageunit,*)'OAD: cp write i ', i(1,1)
670 heimbach 1.1 #endif
671 utke 1.3 write(unit=cp_io_unit) i
672 heimbach 1.1 end subroutine
673    
674 utke 1.3 subroutine cp_arg_restore_integer_matrix(i)
675 heimbach 1.1 C $OpenAD$ INLINE DECLS
676 utke 1.3 use OAD_cp
677     implicit none
678     integer, dimension(:,:) :: i
679 heimbach 1.1 C $OpenAD$ END DECLS
680 utke 1.3 read(unit=cp_io_unit) i
681 heimbach 1.1 #ifdef OAD_DEBUG_CP
682 utke 1.3 write(standardmessageunit,*)'OAD: cp read i ', i(1,1)
683 heimbach 1.1 #endif
684     end subroutine
685    
686 utke 1.3 subroutine cp_arg_store_integer_three_tensor(i)
687 heimbach 1.1 C $OpenAD$ INLINE DECLS
688 utke 1.3 use OAD_cp
689     implicit none
690     integer, dimension(:,:,:) :: i
691 heimbach 1.1 C $OpenAD$ END DECLS
692     #ifdef OAD_DEBUG_CP
693 utke 1.3 write(standardmessageunit,*)'OAD: cp write i ', i(1,1,1)
694 heimbach 1.1 #endif
695 utke 1.3 write(unit=cp_io_unit) i
696 heimbach 1.1 end subroutine
697    
698 utke 1.3 subroutine cp_arg_restore_integer_three_tensor(i)
699 heimbach 1.1 C $OpenAD$ INLINE DECLS
700 utke 1.3 use OAD_cp
701     implicit none
702     integer, dimension(:,:,:) :: i
703 heimbach 1.1 C $OpenAD$ END DECLS
704 utke 1.3 read(unit=cp_io_unit) i
705 heimbach 1.1 #ifdef OAD_DEBUG_CP
706 utke 1.3 write(standardmessageunit,*)'OAD: cp read i ', i(1,1,1)
707 heimbach 1.1 #endif
708     end subroutine
709    
710 utke 1.3 subroutine cp_arg_store_integer_four_tensor(i)
711 heimbach 1.1 C $OpenAD$ INLINE DECLS
712 utke 1.3 use OAD_cp
713     implicit none
714     integer, dimension(:,:,:,:) :: i
715 heimbach 1.1 C $OpenAD$ END DECLS
716     #ifdef OAD_DEBUG_CP
717 utke 1.3 write(standardmessageunit,*)'OAD: cp write i ', i(1,1,1,1)
718 heimbach 1.1 #endif
719 utke 1.3 write(unit=cp_io_unit) i
720 heimbach 1.1 end subroutine
721    
722 utke 1.3 subroutine cp_arg_restore_integer_four_tensor(i)
723 heimbach 1.1 C $OpenAD$ INLINE DECLS
724 utke 1.3 use OAD_cp
725     implicit none
726     integer, dimension(:,:,:,:) :: i
727 heimbach 1.1 C $OpenAD$ END DECLS
728 utke 1.3 read(unit=cp_io_unit) i
729 heimbach 1.1 #ifdef OAD_DEBUG_CP
730 utke 1.3 write(standardmessageunit,*)'OAD: cp read i ', i(1,1,1,1)
731 heimbach 1.1 #endif
732     end subroutine
733    
734 utke 1.3 subroutine cp_arg_store_integer_five_tensor(i)
735 heimbach 1.1 C $OpenAD$ INLINE DECLS
736 utke 1.3 use OAD_cp
737     implicit none
738     integer, dimension(:,:,:,:,:) :: i
739 heimbach 1.1 C $OpenAD$ END DECLS
740     #ifdef OAD_DEBUG_CP
741 utke 1.3 write(standardmessageunit,*)'OAD: cp write i ', i(1,1,1,1,1)
742 heimbach 1.1 #endif
743 utke 1.3 write(unit=cp_io_unit) i
744 heimbach 1.1 end subroutine
745    
746 utke 1.3 subroutine cp_arg_restore_integer_five_tensor(i)
747 heimbach 1.1 C $OpenAD$ INLINE DECLS
748 utke 1.3 use OAD_cp
749     implicit none
750     integer, dimension(:,:,:,:,:) :: i
751 heimbach 1.1 C $OpenAD$ END DECLS
752 utke 1.3 read (unit=cp_io_unit) i
753 heimbach 1.1 #ifdef OAD_DEBUG_CP
754 utke 1.3 write(standardmessageunit,*)'OAD: cp read i ', i(1,1,1,1,1)
755 heimbach 1.1 #endif
756     end subroutine
757    
758     C strings -----------------------------------------------------
759 utke 1.3 subroutine cp_arg_store_string_scalar(s)
760 heimbach 1.1 C $OpenAD$ INLINE DECLS
761 utke 1.2 use OAD_cp
762 heimbach 1.1 implicit none
763 utke 1.3 character*(80) :: s
764 heimbach 1.1 C $OpenAD$ END DECLS
765     #ifdef OAD_DEBUG_CP
766 utke 1.3 write(standardmessageunit,*)'OAD: cp write s ', s
767 heimbach 1.1 #endif
768 utke 1.3 write(unit=cp_io_unit) s
769 heimbach 1.1 end subroutine
770    
771 utke 1.3 subroutine cp_arg_restore_string_scalar(s)
772 heimbach 1.1 C $OpenAD$ INLINE DECLS
773 utke 1.2 use OAD_cp
774 heimbach 1.1 implicit none
775 utke 1.3 character*(80) :: s
776 heimbach 1.1 C $OpenAD$ END DECLS
777 utke 1.3 read (unit=cp_io_unit) s
778 heimbach 1.1 #ifdef OAD_DEBUG_CP
779 utke 1.3 write(standardmessageunit,*)'OAD: cp read s ', s
780 heimbach 1.1 #endif
781     end subroutine
782    
783     C bools -----------------------------------------------------
784 utke 1.3 subroutine cp_arg_store_bool_scalar(b)
785 heimbach 1.1 C $OpenAD$ INLINE DECLS
786 utke 1.3 use OAD_cp
787     implicit none
788     logical :: b
789 heimbach 1.1 C $OpenAD$ END DECLS
790     #ifdef OAD_DEBUG_CP
791 utke 1.3 write(standardmessageunit,*)'OAD: cp write b ', b
792 heimbach 1.1 #endif
793 utke 1.3 write(unit=cp_io_unit) b
794 heimbach 1.1 end subroutine
795    
796 utke 1.3 subroutine cp_arg_restore_bool_scalar(b)
797 heimbach 1.1 C $OpenAD$ INLINE DECLS
798 utke 1.3 use OAD_cp
799     implicit none
800     logical :: b
801 heimbach 1.1 C $OpenAD$ END DECLS
802 utke 1.3 read (unit=cp_io_unit) b
803 heimbach 1.1 #ifdef OAD_DEBUG_CP
804 utke 1.3 write(standardmessageunit,*)'OAD: cp read b ', b
805 heimbach 1.1 #endif
806     end subroutine
807 utke 1.2
808 utke 1.3 subroutine cp_arg_store_bool_matrix(b)
809 utke 1.2 C $OpenAD$ INLINE DECLS
810 utke 1.3 use OAD_cp
811     implicit none
812     logical, dimension(:,:) :: b
813 utke 1.2 C $OpenAD$ END DECLS
814 jahn 1.4 #ifdef OAD_DEBUG_CP
815 utke 1.3 write(standardmessageunit,*)'OAD: cp write b ', b(1,1)
816 utke 1.2 #endif
817 utke 1.3 write(unit=cp_io_unit) b
818 utke 1.2 end subroutine
819    
820 utke 1.3 subroutine cp_arg_restore_bool_matrix(b)
821 utke 1.2 C $OpenAD$ INLINE DECLS
822 utke 1.3 use OAD_cp
823     implicit none
824     logical, dimension(:,:) :: b
825 utke 1.2 C $OpenAD$ END DECLS
826 utke 1.3 read(unit=cp_io_unit) b
827 utke 1.2 #ifdef OAD_DEBUG_CP
828 utke 1.3 write(standardmessageunit,*)'OAD: cp read b ', b(1,1)
829 utke 1.2 #endif
830     end subroutine

  ViewVC Help
Powered by ViewVC 1.1.22