/[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.2 - (hide annotations) (download)
Fri Dec 21 03:40:10 2012 UTC (11 years, 4 months ago) by utke
Branch: MAIN
Changes since 1.1: +279 -91 lines
sync with openad (part 1)

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     subroutine push_s(x)
189     C $OpenAD$ INLINE DECLS
190 utke 1.2 use OAD_tape
191 heimbach 1.1 implicit none
192     character*(80) :: x
193     C $OpenAD$ END DECLS
194     if(oad_st_sz .lt. oad_st_ptr) call oad_st_grow()
195     oad_st(oad_st_ptr)=x; oad_st_ptr=oad_st_ptr+1
196     end subroutine
197    
198     subroutine pop_s(x)
199     C $OpenAD$ INLINE DECLS
200 utke 1.2 use OAD_tape
201 heimbach 1.1 implicit none
202     character*(80) :: x
203     C $OpenAD$ END DECLS
204     oad_st_ptr=oad_st_ptr-1
205     x=oad_st(oad_st_ptr)
206     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 heimbach 1.1 double precision, intent(in) :: a
214     type(active), intent(in) :: x
215     type(active), intent(inout) :: y
216     C $OpenAD$ END DECLS
217     y%d=y%d+x%d*(a)
218     end subroutine
219    
220     subroutine zeroderiv(x)
221     C $OpenAD$ INLINE DECLS
222 utke 1.2 use OAD_active
223 heimbach 1.1 type(active), intent(out) :: x
224     C $OpenAD$ END DECLS
225     x%d=0.0d0
226     end subroutine
227    
228     subroutine setderiv(y,x)
229     C $OpenAD$ INLINE DECLS
230 utke 1.2 use OAD_active
231 heimbach 1.1 type(active), intent(out) :: x
232     type(active), intent(in) :: y
233     C $OpenAD$ END DECLS
234     x%d=y%d
235     end subroutine
236    
237     subroutine incderiv(y,x)
238     C $OpenAD$ INLINE DECLS
239 utke 1.2 use OAD_active
240 heimbach 1.1 type(active), intent(out) :: x
241     type(active), intent(in) :: y
242     C $OpenAD$ END DECLS
243     x%d=x%d+y%d
244     end subroutine
245    
246     subroutine decderiv(y,x)
247     C $OpenAD$ INLINE DECLS
248 utke 1.2 use OAD_active
249 heimbach 1.1 type(active), intent(out) :: x
250     type(active), intent(in) :: y
251     C $OpenAD$ END DECLS
252     x%d = x%d - y%d
253     end subroutine decderiv
254    
255     C Checkpointing stuff ---------------------------------------
256    
257     C reals -----------------------------------------------------
258     subroutine cp_arg_store_real_scalar(x)
259     C $OpenAD$ INLINE DECLS
260 utke 1.2 use OAD_cp
261 heimbach 1.1 double precision :: x
262     C $OpenAD$ END DECLS
263     #ifdef OAD_DEBUG_CP
264     write(standardmessageunit,*)'OAD: cp write x ', x
265     #endif
266 utke 1.2 write(unit=cp_io_unit) x
267 heimbach 1.1 end subroutine
268    
269     subroutine cp_arg_restore_real_scalar(x)
270     C $OpenAD$ INLINE DECLS
271 utke 1.2 use OAD_cp
272 heimbach 1.1 implicit none
273     double precision :: x
274     C $OpenAD$ END DECLS
275 utke 1.2 read(unit=cp_io_unit) x
276 heimbach 1.1 #ifdef OAD_DEBUG_CP
277     write(standardmessageunit,*)'OAD: cp read x ', x
278     #endif
279     end subroutine
280    
281     subroutine cp_arg_store_real_scalar_a(x)
282     C $OpenAD$ INLINE DECLS
283 utke 1.2 use OAD_active
284     use OAD_cp
285     implicit none
286     type(active) :: x
287 heimbach 1.1 C $OpenAD$ END DECLS
288     #ifdef OAD_DEBUG_CP
289     write(standardmessageunit,*)'OAD: cp write x ', x%v
290     #endif
291 utke 1.2 write(unit=cp_io_unit) x%v
292 heimbach 1.1 end subroutine
293    
294     subroutine cp_arg_restore_real_scalar_a(x)
295     C $OpenAD$ INLINE DECLS
296 utke 1.2 use OAD_active
297     use OAD_cp
298 heimbach 1.1 implicit none
299 utke 1.2 type(active) :: x
300 heimbach 1.1 C $OpenAD$ END DECLS
301 utke 1.2 read(unit=cp_io_unit) x%v
302 heimbach 1.1 #ifdef OAD_DEBUG_CP
303     write(standardmessageunit,*)'OAD: cp read x ', x%v
304     #endif
305     end subroutine
306    
307     subroutine cp_arg_store_real_vector(x)
308     C $OpenAD$ INLINE DECLS
309 utke 1.2 use OAD_cp
310 heimbach 1.1 implicit none
311     double precision, dimension(:) :: x
312     C $OpenAD$ END DECLS
313     #ifdef OAD_DEBUG_CP
314     write(standardmessageunit,*)'OAD: cp write x ', x(1)
315     #endif
316 utke 1.2 write(unit=cp_io_unit) x
317 heimbach 1.1 end subroutine
318    
319     subroutine cp_arg_restore_real_vector(x)
320     C $OpenAD$ INLINE DECLS
321 utke 1.2 use OAD_cp
322 heimbach 1.1 implicit none
323     double precision, dimension(:) :: x
324     C $OpenAD$ END DECLS
325 utke 1.2 read(unit=cp_io_unit) x
326 heimbach 1.1 #ifdef OAD_DEBUG_CP
327     write(standardmessageunit,*)'OAD: cp read x ', x(1)
328     #endif
329     end subroutine
330    
331     subroutine cp_arg_store_real_vector_a(x)
332     C $OpenAD$ INLINE DECLS
333 utke 1.2 use OAD_active
334     use OAD_cp
335 heimbach 1.1 implicit none
336 utke 1.2 type(active), dimension(:) :: x
337 heimbach 1.1 C $OpenAD$ END DECLS
338     #ifdef OAD_DEBUG_CP
339     write(standardmessageunit,*)'OAD: cp write x ', x(1)%v
340     #endif
341 utke 1.2 write(unit=cp_io_unit) x%v
342 heimbach 1.1 end subroutine
343    
344     subroutine cp_arg_restore_real_vector_a(x)
345     C $OpenAD$ INLINE DECLS
346 utke 1.2 use OAD_active
347     use OAD_cp
348 heimbach 1.1 implicit none
349 utke 1.2 type(active), dimension(:) :: x
350 heimbach 1.1 C $OpenAD$ END DECLS
351 utke 1.2 read(unit=cp_io_unit) x%v
352 heimbach 1.1 #ifdef OAD_DEBUG_CP
353     write(standardmessageunit,*)'OAD: cp read x ', x(1)%v
354     #endif
355     end subroutine
356    
357     subroutine cp_arg_store_real_matrix(x)
358     C $OpenAD$ INLINE DECLS
359 utke 1.2 use OAD_cp
360 heimbach 1.1 implicit none
361 utke 1.2 double precision, dimension(:,:) :: x
362 heimbach 1.1 C $OpenAD$ END DECLS
363     #ifdef OAD_DEBUG_CP
364     write(standardmessageunit,*)'OAD: cp write x ', x(1,1)
365     #endif
366 utke 1.2 write(unit=cp_io_unit) x
367 heimbach 1.1 end subroutine
368    
369     subroutine cp_arg_restore_real_matrix(x)
370     C $OpenAD$ INLINE DECLS
371 utke 1.2 use OAD_cp
372 heimbach 1.1 implicit none
373 utke 1.2 double precision, dimension(:,:) :: x
374 heimbach 1.1 C $OpenAD$ END DECLS
375 utke 1.2 read(unit=cp_io_unit) x
376 heimbach 1.1 #ifdef OAD_DEBUG_CP
377     write(standardmessageunit,*)'OAD: cp read x ', x(1,1)
378     #endif
379     end subroutine
380    
381     subroutine cp_arg_store_real_matrix_a(x)
382     C $OpenAD$ INLINE DECLS
383 utke 1.2 use OAD_active
384     use OAD_cp
385 heimbach 1.1 implicit none
386 utke 1.2 type(active), dimension(:,:) :: x
387 heimbach 1.1 C $OpenAD$ END DECLS
388     #ifdef OAD_DEBUG_CP
389     write(standardmessageunit,*)'OAD: cp write x ', x(1,1)%v
390     #endif
391 utke 1.2 write(unit=cp_io_unit) x%v
392 heimbach 1.1 end subroutine
393    
394     subroutine cp_arg_restore_real_matrix_a(x)
395     C $OpenAD$ INLINE DECLS
396 utke 1.2 use OAD_active
397     use OAD_cp
398 heimbach 1.1 implicit none
399 utke 1.2 type(active), dimension(:,:) :: x
400 heimbach 1.1 C $OpenAD$ END DECLS
401 utke 1.2 read(unit=cp_io_unit) x%v
402 heimbach 1.1 #ifdef OAD_DEBUG_CP
403     write(standardmessageunit,*)'OAD: cp read x ', x(1.1)%v
404     #endif
405     end subroutine
406    
407     subroutine cp_arg_store_real_three_tensor(x)
408     C $OpenAD$ INLINE DECLS
409 utke 1.2 use OAD_cp
410 heimbach 1.1 implicit none
411 utke 1.2 double precision, dimension(:,:,:) :: x
412 heimbach 1.1 C $OpenAD$ END DECLS
413     #ifdef OAD_DEBUG_CP
414     write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1)
415     #endif
416 utke 1.2 write(unit=cp_io_unit) x
417 heimbach 1.1 end subroutine
418    
419 utke 1.2 subroutine cp_arg_restore_real_three_tensor(x)
420 heimbach 1.1 C $OpenAD$ INLINE DECLS
421 utke 1.2 use OAD_cp
422 heimbach 1.1 implicit none
423 utke 1.2 double precision, dimension(:,:,:) :: x
424 heimbach 1.1 C $OpenAD$ END DECLS
425 utke 1.2 read(unit=cp_io_unit) x
426 heimbach 1.1 #ifdef OAD_DEBUG_CP
427 utke 1.2 write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1)
428 heimbach 1.1 #endif
429     end subroutine
430    
431 utke 1.2 subroutine cp_arg_store_real_three_tensor_a(x)
432 heimbach 1.1 C $OpenAD$ INLINE DECLS
433 utke 1.2 use OAD_active
434     use OAD_cp
435 heimbach 1.1 implicit none
436 utke 1.2 type(active), dimension(:,:,:) :: x
437 heimbach 1.1 C $OpenAD$ END DECLS
438     #ifdef OAD_DEBUG_CP
439 utke 1.2 write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1)%v
440 heimbach 1.1 #endif
441 utke 1.2 write(unit=cp_io_unit) x%v
442 heimbach 1.1 end subroutine
443    
444     subroutine cp_arg_restore_real_three_tensor_a(x)
445     C $OpenAD$ INLINE DECLS
446 utke 1.2 use OAD_active
447     use OAD_cp
448 heimbach 1.1 implicit none
449 utke 1.2 type(active), dimension(:,:,:) :: x
450 heimbach 1.1 C $OpenAD$ END DECLS
451     #ifdef OAD_DEBUG_CP
452     write(standardmessageunit,*)'OAD: cp read x ', x%v
453     #endif
454 utke 1.2 read(unit=cp_io_unit) x%v
455 heimbach 1.1 end subroutine
456    
457     subroutine cp_arg_store_real_four_tensor(x)
458     C $OpenAD$ INLINE DECLS
459 utke 1.2 use OAD_cp
460 heimbach 1.1 implicit none
461 utke 1.2 double precision, dimension(:,:,:,:) :: x
462 heimbach 1.1 C $OpenAD$ END DECLS
463     #ifdef OAD_DEBUG_CP
464     write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1)
465     #endif
466 utke 1.2 write(unit=cp_io_unit) x
467 heimbach 1.1 end subroutine
468    
469 utke 1.2 subroutine cp_arg_restore_real_four_tensor(x)
470 heimbach 1.1 C $OpenAD$ INLINE DECLS
471 utke 1.2 use OAD_cp
472 heimbach 1.1 implicit none
473 utke 1.2 double precision, dimension(:,:,:,:) :: x
474 heimbach 1.1 C $OpenAD$ END DECLS
475 utke 1.2 read(unit=cp_io_unit) x
476 heimbach 1.1 #ifdef OAD_DEBUG_CP
477 utke 1.2 write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1,1)
478 heimbach 1.1 #endif
479     end subroutine
480    
481 utke 1.2 subroutine cp_arg_store_real_four_tensor_a(x)
482 heimbach 1.1 C $OpenAD$ INLINE DECLS
483 utke 1.2 use OAD_active
484     use OAD_cp
485 heimbach 1.1 implicit none
486 utke 1.2 type(active), dimension(:,:,:,:) :: x
487 heimbach 1.1 C $OpenAD$ END DECLS
488     #ifdef OAD_DEBUG_CP
489 utke 1.2 write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1)%v
490 heimbach 1.1 #endif
491 utke 1.2 write(unit=cp_io_unit) x%v
492 heimbach 1.1 end subroutine
493    
494     subroutine cp_arg_restore_real_four_tensor_a(x)
495     C $OpenAD$ INLINE DECLS
496 utke 1.2 use OAD_active
497     use OAD_cp
498 heimbach 1.1 implicit none
499 utke 1.2 type(active), dimension(:,:,:,:) :: x
500 heimbach 1.1 C $OpenAD$ END DECLS
501 utke 1.2 read(unit=cp_io_unit) x%v
502 heimbach 1.1 #ifdef OAD_DEBUG_CP
503     write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1,1)%v
504     #endif
505     end subroutine
506    
507     subroutine cp_arg_store_real_five_tensor(x)
508     C $OpenAD$ INLINE DECLS
509 utke 1.2 use OAD_cp
510 heimbach 1.1 implicit none
511 utke 1.2 double precision, dimension(:,:,:,:,:) :: x
512 heimbach 1.1 C $OpenAD$ END DECLS
513     #ifdef OAD_DEBUG_CP
514     write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1,1)
515     #endif
516 utke 1.2 write(unit=cp_io_unit) x
517 heimbach 1.1 end subroutine
518    
519 utke 1.2 subroutine cp_arg_restore_real_five_tensor(x)
520 heimbach 1.1 C $OpenAD$ INLINE DECLS
521 utke 1.2 use OAD_cp
522 heimbach 1.1 implicit none
523 utke 1.2 double precision, dimension(:,:,:,:,:) :: x
524 heimbach 1.1 C $OpenAD$ END DECLS
525 utke 1.2 read(unit=cp_io_unit) x
526 heimbach 1.1 #ifdef OAD_DEBUG_CP
527 utke 1.2 write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1,1,1)
528 heimbach 1.1 #endif
529     end subroutine
530    
531 utke 1.2 subroutine cp_arg_store_real_five_tensor_a(x)
532 heimbach 1.1 C $OpenAD$ INLINE DECLS
533 utke 1.2 use OAD_active
534     use OAD_cp
535 heimbach 1.1 implicit none
536 utke 1.2 type(active), dimension(:,:,:,:,:) :: x
537 heimbach 1.1 C $OpenAD$ END DECLS
538     #ifdef OAD_DEBUG_CP
539 utke 1.2 write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1,1)%v
540 heimbach 1.1 #endif
541 utke 1.2 write(unit=cp_io_unit) x%v
542 heimbach 1.1 end subroutine
543    
544     subroutine cp_arg_restore_real_five_tensor_a(x)
545     C $OpenAD$ INLINE DECLS
546 utke 1.2 use OAD_active
547     use OAD_cp
548 heimbach 1.1 implicit none
549 utke 1.2 type(active), dimension(:,:,:,:,:) :: x
550 heimbach 1.1 C $OpenAD$ END DECLS
551 utke 1.2 read(unit=cp_io_unit) x%v
552 heimbach 1.1 #ifdef OAD_DEBUG_CP
553     write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1,1,1)%v
554     #endif
555     end subroutine
556    
557    
558     C integers -----------------------------------------------------
559     subroutine cp_arg_store_integer_scalar(x)
560     C $OpenAD$ INLINE DECLS
561 utke 1.2 use OAD_cp
562 heimbach 1.1 implicit none
563     integer :: x
564     C $OpenAD$ END DECLS
565     #ifdef OAD_DEBUG_CP
566     write(standardmessageunit,*)'OAD: cp write x ', x
567     #endif
568 utke 1.2 write(unit=cp_io_unit) x
569 heimbach 1.1 end subroutine
570    
571     subroutine cp_arg_restore_integer_scalar(x)
572     C $OpenAD$ INLINE DECLS
573 utke 1.2 use OAD_cp
574 heimbach 1.1 implicit none
575     integer :: x
576     C $OpenAD$ END DECLS
577 utke 1.2 read(unit=cp_io_unit) x
578 heimbach 1.1 #ifdef OAD_DEBUG_CP
579     write(standardmessageunit,*)'OAD: cp read x ', x
580     #endif
581     end subroutine
582    
583     subroutine cp_arg_store_integer_vector(x)
584     C $OpenAD$ INLINE DECLS
585 utke 1.2 use OAD_cp
586 heimbach 1.1 implicit none
587     integer, dimension(:) :: x
588     C $OpenAD$ END DECLS
589     #ifdef OAD_DEBUG_CP
590     write(standardmessageunit,*)'OAD: cp write x ', x(1)
591     #endif
592 utke 1.2 write(unit=cp_io_unit) x
593 heimbach 1.1 end subroutine
594    
595     subroutine cp_arg_restore_integer_vector(x)
596     C $OpenAD$ INLINE DECLS
597 utke 1.2 use OAD_cp
598 heimbach 1.1 implicit none
599     integer, dimension(:) :: x
600     C $OpenAD$ END DECLS
601 utke 1.2 read(unit=cp_io_unit) x
602 heimbach 1.1 #ifdef OAD_DEBUG_CP
603     write(standardmessageunit,*)'OAD: cp read x ', x(1)
604     #endif
605     end subroutine
606    
607     subroutine cp_arg_store_integer_matrix(x)
608     C $OpenAD$ INLINE DECLS
609 utke 1.2 use OAD_cp
610 heimbach 1.1 implicit none
611 utke 1.2 integer, dimension(:,:) :: x
612 heimbach 1.1 C $OpenAD$ END DECLS
613     #ifdef OAD_DEBUG_CP
614     write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1)
615     #endif
616 utke 1.2 write(unit=cp_io_unit) x
617 heimbach 1.1 end subroutine
618    
619     subroutine cp_arg_restore_integer_matrix(x)
620     C $OpenAD$ INLINE DECLS
621 utke 1.2 use OAD_cp
622 heimbach 1.1 implicit none
623 utke 1.2 integer, dimension(:,:) :: x
624 heimbach 1.1 C $OpenAD$ END DECLS
625 utke 1.2 read(unit=cp_io_unit) x
626 heimbach 1.1 #ifdef OAD_DEBUG_CP
627     write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1)
628     #endif
629     end subroutine
630    
631     subroutine cp_arg_store_integer_three_tensor(x)
632     C $OpenAD$ INLINE DECLS
633 utke 1.2 use OAD_cp
634 heimbach 1.1 implicit none
635 utke 1.2 integer, dimension(:,:,:) :: x
636 heimbach 1.1 C $OpenAD$ END DECLS
637     #ifdef OAD_DEBUG_CP
638     write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1)
639     #endif
640 utke 1.2 write(unit=cp_io_unit) x
641 heimbach 1.1 end subroutine
642    
643     subroutine cp_arg_restore_integer_three_tensor(x)
644     C $OpenAD$ INLINE DECLS
645 utke 1.2 use OAD_cp
646 heimbach 1.1 implicit none
647 utke 1.2 integer, dimension(:,:,:) :: x
648 heimbach 1.1 C $OpenAD$ END DECLS
649 utke 1.2 read(unit=cp_io_unit) x
650 heimbach 1.1 #ifdef OAD_DEBUG_CP
651     write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1)
652     #endif
653     end subroutine
654    
655     subroutine cp_arg_store_integer_four_tensor(x)
656     C $OpenAD$ INLINE DECLS
657 utke 1.2 use OAD_cp
658 heimbach 1.1 implicit none
659 utke 1.2 integer, dimension(:,:,:,:) :: x
660 heimbach 1.1 C $OpenAD$ END DECLS
661     #ifdef OAD_DEBUG_CP
662     write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1)
663     #endif
664 utke 1.2 write(unit=cp_io_unit) x
665 heimbach 1.1 end subroutine
666    
667     subroutine cp_arg_restore_integer_four_tensor(x)
668     C $OpenAD$ INLINE DECLS
669 utke 1.2 use OAD_cp
670 heimbach 1.1 implicit none
671 utke 1.2 integer, dimension(:,:,:,:) :: x
672 heimbach 1.1 C $OpenAD$ END DECLS
673 utke 1.2 read(unit=cp_io_unit) x
674 heimbach 1.1 #ifdef OAD_DEBUG_CP
675     write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1,1)
676     #endif
677     end subroutine
678    
679     subroutine cp_arg_store_integer_five_tensor(x)
680     C $OpenAD$ INLINE DECLS
681 utke 1.2 use OAD_cp
682 heimbach 1.1 implicit none
683 utke 1.2 integer, dimension(:,:,:,:,:) :: x
684 heimbach 1.1 C $OpenAD$ END DECLS
685     #ifdef OAD_DEBUG_CP
686     write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1,1)
687     #endif
688 utke 1.2 write(unit=cp_io_unit) x
689 heimbach 1.1 end subroutine
690    
691     subroutine cp_arg_restore_integer_five_tensor(x)
692     C $OpenAD$ INLINE DECLS
693 utke 1.2 use OAD_cp
694 heimbach 1.1 implicit none
695 utke 1.2 integer, dimension(:,:,:,:,:) :: x
696 heimbach 1.1 C $OpenAD$ END DECLS
697 utke 1.2 read (unit=cp_io_unit) x
698 heimbach 1.1 #ifdef OAD_DEBUG_CP
699     write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1,1,1)
700     #endif
701     end subroutine
702    
703     C strings -----------------------------------------------------
704     subroutine cp_arg_store_string_scalar(x)
705     C $OpenAD$ INLINE DECLS
706 utke 1.2 use OAD_cp
707 heimbach 1.1 implicit none
708     character*(80) :: x
709     C $OpenAD$ END DECLS
710     #ifdef OAD_DEBUG_CP
711     write(standardmessageunit,*)'OAD: cp write x ', x
712     #endif
713 utke 1.2 write(unit=cp_io_unit) x
714 heimbach 1.1 end subroutine
715    
716     subroutine cp_arg_restore_string_scalar(x)
717     C $OpenAD$ INLINE DECLS
718 utke 1.2 use OAD_cp
719 heimbach 1.1 implicit none
720     character*(80) :: x
721     C $OpenAD$ END DECLS
722 utke 1.2 read (unit=cp_io_unit) x
723 heimbach 1.1 #ifdef OAD_DEBUG_CP
724     write(standardmessageunit,*)'OAD: cp read x ', x
725     #endif
726     end subroutine
727    
728     C bools -----------------------------------------------------
729     subroutine cp_arg_store_bool_scalar(x)
730     C $OpenAD$ INLINE DECLS
731 utke 1.2 use OAD_cp
732 heimbach 1.1 implicit none
733     logical :: x
734     C $OpenAD$ END DECLS
735     #ifdef OAD_DEBUG_CP
736     write(standardmessageunit,*)'OAD: cp write x ', x
737     #endif
738 utke 1.2 write(unit=cp_io_unit) x
739 heimbach 1.1 end subroutine
740    
741     subroutine cp_arg_restore_bool_scalar(x)
742     C $OpenAD$ INLINE DECLS
743 utke 1.2 use OAD_cp
744 heimbach 1.1 implicit none
745     logical :: x
746     C $OpenAD$ END DECLS
747 utke 1.2 read (unit=cp_io_unit) x
748 heimbach 1.1 #ifdef OAD_DEBUG_CP
749     write(standardmessageunit,*)'OAD: cp read x ', x
750     #endif
751     end subroutine
752 utke 1.2
753     subroutine cp_arg_store_bool_matrix(x)
754     C $OpenAD$ INLINE DECLS
755     use OAD_cp
756     implicit none
757     logical, dimension(:,:) :: x
758     C $OpenAD$ END DECLS
759     u#ifdef OAD_DEBUG_CP
760     write(standardmessageunit,*)'OAD: cp write x ', x(1)
761     #endif
762     write(unit=cp_io_unit) x
763     end subroutine
764    
765     subroutine cp_arg_restore_bool_matrix(x)
766     C $OpenAD$ INLINE DECLS
767     use OAD_cp
768     implicit none
769     logical, dimension(:,:) :: x
770     C $OpenAD$ END DECLS
771     read(unit=cp_io_unit) x
772     #ifdef OAD_DEBUG_CP
773     write(standardmessageunit,*)'OAD: cp read x ', x(1)
774     #endif
775     end subroutine

  ViewVC Help
Powered by ViewVC 1.1.22