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

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

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

revision 1.2 by utke, Fri Dec 21 03:40:10 2012 UTC revision 1.3 by utke, Fri Dec 21 16:18:40 2012 UTC
# Line 185  C $OpenAD$ END DECLS Line 185  C $OpenAD$ END DECLS
185        x=oad_lt(oad_lt_ptr)        x=oad_lt(oad_lt_ptr)
186        end subroutine        end subroutine
187    
188        subroutine push_s(x)        subroutine push_s(s)
189  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
190        use OAD_tape        use OAD_tape
191        implicit none        implicit none
192        character*(80) :: x        character*(80) :: s
193  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
194        if(oad_st_sz .lt. oad_st_ptr) call oad_st_grow()        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        oad_st(oad_st_ptr)=s; oad_st_ptr=oad_st_ptr+1
196        end subroutine        end subroutine
197    
198        subroutine pop_s(x)        subroutine pop_s(s)
199  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
200        use OAD_tape        use OAD_tape
201        implicit none        implicit none
202        character*(80) :: x        character*(80) :: s
203  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
204        oad_st_ptr=oad_st_ptr-1        oad_st_ptr=oad_st_ptr-1
205        x=oad_st(oad_st_ptr)        s=oad_st(oad_st_ptr)
206        end subroutine        end subroutine
207    
208  C ----------------------- Propagation -----------------------  C ----------------------- Propagation -----------------------
# Line 210  C ----------------------- Propagation -- Line 210  C ----------------------- Propagation --
210        subroutine saxpy(a,x,y)        subroutine saxpy(a,x,y)
211  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
212        use OAD_active        use OAD_active
213          implicit none
214        double precision, intent(in) :: a        double precision, intent(in) :: a
215        type(active), intent(in) :: x        type(active), intent(in) :: x
216        type(active), intent(inout) :: y        type(active), intent(inout) :: y
# Line 220  C $OpenAD$ END DECLS Line 221  C $OpenAD$ END DECLS
221        subroutine zeroderiv(x)        subroutine zeroderiv(x)
222  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
223        use OAD_active        use OAD_active
224          implicit none
225        type(active), intent(out) :: x        type(active), intent(out) :: x
226  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
227        x%d=0.0d0        x%d=0.0d0
# Line 228  C $OpenAD$ END DECLS Line 230  C $OpenAD$ END DECLS
230        subroutine setderiv(y,x)        subroutine setderiv(y,x)
231  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
232        use OAD_active        use OAD_active
233          implicit none
234        type(active), intent(out) :: x        type(active), intent(out) :: x
235        type(active), intent(in) :: y        type(active), intent(in) :: y
236  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
# Line 237  C $OpenAD$ END DECLS Line 240  C $OpenAD$ END DECLS
240        subroutine incderiv(y,x)        subroutine incderiv(y,x)
241  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
242        use OAD_active        use OAD_active
243          implicit none
244        type(active), intent(out) :: x        type(active), intent(out) :: x
245        type(active), intent(in) :: y        type(active), intent(in) :: y
246  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
# Line 246  C $OpenAD$ END DECLS Line 250  C $OpenAD$ END DECLS
250        subroutine decderiv(y,x)        subroutine decderiv(y,x)
251  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
252        use OAD_active        use OAD_active
253          implicit none
254        type(active), intent(out) :: x        type(active), intent(out) :: x
255        type(active), intent(in) :: y        type(active), intent(in) :: y
256  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
# Line 257  C Checkpointing stuff ------------------ Line 262  C Checkpointing stuff ------------------
262  C reals -----------------------------------------------------  C reals -----------------------------------------------------
263        subroutine cp_arg_store_real_scalar(x)        subroutine cp_arg_store_real_scalar(x)
264  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
265        use OAD_cp          use OAD_cp
266        double precision :: x          implicit none
267            double precision :: x
268  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
269  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
270          write(standardmessageunit,*)'OAD: cp write x ', x          write(standardmessageunit,*)'OAD: cp write x ', x
# Line 268  C $OpenAD$ END DECLS Line 274  C $OpenAD$ END DECLS
274    
275        subroutine cp_arg_restore_real_scalar(x)        subroutine cp_arg_restore_real_scalar(x)
276  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
277        use OAD_cp          use OAD_cp
278        implicit none          implicit none
279        double precision :: x          double precision :: x
280  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
281          read(unit=cp_io_unit) x          read(unit=cp_io_unit) x
282  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
# Line 280  C $OpenAD$ END DECLS Line 286  C $OpenAD$ END DECLS
286    
287        subroutine cp_arg_store_real_scalar_a(x)        subroutine cp_arg_store_real_scalar_a(x)
288  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
289        use OAD_active          use OAD_active
290        use OAD_cp          use OAD_cp
291        implicit none          implicit none
292        type(active) :: x          type(active) :: x
293  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
294  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
295          write(standardmessageunit,*)'OAD: cp write x ', x%v          write(standardmessageunit,*)'OAD: cp write x ', x%v
# Line 293  C $OpenAD$ END DECLS Line 299  C $OpenAD$ END DECLS
299    
300        subroutine cp_arg_restore_real_scalar_a(x)        subroutine cp_arg_restore_real_scalar_a(x)
301  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
302        use OAD_active          use OAD_active
303        use OAD_cp          use OAD_cp
304        implicit none          implicit none
305        type(active) :: x          type(active) :: x
306  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
307          read(unit=cp_io_unit) x%v          read(unit=cp_io_unit) x%v
308  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
309          write(standardmessageunit,*)'OAD: cp read x ', x%v          write(standardmessageunit,*)'OAD: cp read x ', x%v
310  #endif  #endif
311        end subroutine        end subroutine
312          
313        subroutine cp_arg_store_real_vector(x)        subroutine cp_arg_store_real_vector(x)
314  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
315        use OAD_cp          use OAD_cp
316        implicit none          implicit none
317        double precision, dimension(:) :: x          double precision, dimension(:) :: x
318  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
319  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
320          write(standardmessageunit,*)'OAD: cp write x ', x(1)          write(standardmessageunit,*)'OAD: cp write x ', x(1)
# Line 318  C $OpenAD$ END DECLS Line 324  C $OpenAD$ END DECLS
324    
325        subroutine cp_arg_restore_real_vector(x)        subroutine cp_arg_restore_real_vector(x)
326  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
327        use OAD_cp          use OAD_cp
328        implicit none          implicit none
329        double precision, dimension(:) :: x          double precision, dimension(:) :: x
330  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
331          read(unit=cp_io_unit) x          read(unit=cp_io_unit) x
332  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
# Line 330  C $OpenAD$ END DECLS Line 336  C $OpenAD$ END DECLS
336    
337        subroutine cp_arg_store_real_vector_a(x)        subroutine cp_arg_store_real_vector_a(x)
338  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
339        use OAD_active          use OAD_active
340        use OAD_cp          use OAD_cp
341        implicit none          implicit none
342        type(active), dimension(:) :: x          type(active), dimension(:) :: x
343  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
344  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
345          write(standardmessageunit,*)'OAD: cp write x ', x(1)%v          write(standardmessageunit,*)'OAD: cp write x ', x(1)%v
# Line 343  C $OpenAD$ END DECLS Line 349  C $OpenAD$ END DECLS
349    
350        subroutine cp_arg_restore_real_vector_a(x)        subroutine cp_arg_restore_real_vector_a(x)
351  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
352        use OAD_active          use OAD_active
353        use OAD_cp          use OAD_cp
354        implicit none          implicit none
355        type(active), dimension(:) :: x          type(active), dimension(:) :: x
356  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
357          read(unit=cp_io_unit) x%v          read(unit=cp_io_unit) x%v
358  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
# Line 356  C $OpenAD$ END DECLS Line 362  C $OpenAD$ END DECLS
362    
363        subroutine cp_arg_store_real_matrix(x)        subroutine cp_arg_store_real_matrix(x)
364  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
365        use OAD_cp          use OAD_cp
366        implicit none          implicit none
367        double precision, dimension(:,:) :: x          double precision, dimension(:,:) :: x
368  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
369  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
370          write(standardmessageunit,*)'OAD: cp write x ', x(1,1)          write(standardmessageunit,*)'OAD: cp write x ', x(1,1)
# Line 368  C $OpenAD$ END DECLS Line 374  C $OpenAD$ END DECLS
374    
375        subroutine cp_arg_restore_real_matrix(x)        subroutine cp_arg_restore_real_matrix(x)
376  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
377        use OAD_cp          use OAD_cp
378        implicit none          implicit none
379        double precision, dimension(:,:) :: x          double precision, dimension(:,:) :: x
380  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
381          read(unit=cp_io_unit) x          read(unit=cp_io_unit) x
382  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
# Line 380  C $OpenAD$ END DECLS Line 386  C $OpenAD$ END DECLS
386    
387        subroutine cp_arg_store_real_matrix_a(x)        subroutine cp_arg_store_real_matrix_a(x)
388  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
389        use OAD_active          use OAD_active
390        use OAD_cp          use OAD_cp
391        implicit none          implicit none
392        type(active), dimension(:,:) :: x          type(active), dimension(:,:) :: x
393  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
394  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
395          write(standardmessageunit,*)'OAD: cp write x ', x(1,1)%v          write(standardmessageunit,*)'OAD: cp write x ', x(1,1)%v
# Line 393  C $OpenAD$ END DECLS Line 399  C $OpenAD$ END DECLS
399    
400        subroutine cp_arg_restore_real_matrix_a(x)        subroutine cp_arg_restore_real_matrix_a(x)
401  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
402        use OAD_active          use OAD_active
403        use OAD_cp          use OAD_cp
404        implicit none          implicit none
405        type(active), dimension(:,:) :: x          type(active), dimension(:,:) :: x
406  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
407          read(unit=cp_io_unit) x%v          read(unit=cp_io_unit) x%v
408  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
409          write(standardmessageunit,*)'OAD: cp read x ', x(1.1)%v          write(standardmessageunit,*)'OAD: cp read x ', x(1,1)%v
410  #endif  #endif
411        end subroutine        end subroutine
412    
413        subroutine cp_arg_store_real_three_tensor(x)        subroutine cp_arg_store_real_three_tensor(x)
414  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
415        use OAD_cp          use OAD_cp
416        implicit none          implicit none
417        double precision, dimension(:,:,:) :: x          double precision, dimension(:,:,:) :: x
418  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
419  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
420          write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1)          write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1)
# Line 418  C $OpenAD$ END DECLS Line 424  C $OpenAD$ END DECLS
424    
425        subroutine cp_arg_restore_real_three_tensor(x)        subroutine cp_arg_restore_real_three_tensor(x)
426  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
427        use OAD_cp          use OAD_cp
428        implicit none          implicit none
429        double precision, dimension(:,:,:) :: x          double precision, dimension(:,:,:) :: x
430  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
431          read(unit=cp_io_unit) x          read(unit=cp_io_unit) x
432  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
# Line 430  C $OpenAD$ END DECLS Line 436  C $OpenAD$ END DECLS
436    
437        subroutine cp_arg_store_real_three_tensor_a(x)        subroutine cp_arg_store_real_three_tensor_a(x)
438  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
439        use OAD_active          use OAD_active
440        use OAD_cp          use OAD_cp
441        implicit none          implicit none
442        type(active), dimension(:,:,:) :: x          type(active), dimension(:,:,:) :: x
443  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
444  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
445          write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1)%v          write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1)%v
# Line 443  C $OpenAD$ END DECLS Line 449  C $OpenAD$ END DECLS
449    
450        subroutine cp_arg_restore_real_three_tensor_a(x)        subroutine cp_arg_restore_real_three_tensor_a(x)
451  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
452        use OAD_active          use OAD_active
453        use OAD_cp          use OAD_cp
454        implicit none          implicit none
455        type(active), dimension(:,:,:) :: x          type(active), dimension(:,:,:) :: x
456  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
457            read(unit=cp_io_unit) x%v
458  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
459          write(standardmessageunit,*)'OAD: cp read x ', x%v          write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1)%v
460  #endif  #endif
         read(unit=cp_io_unit) x%v  
461        end subroutine        end subroutine
462    
463        subroutine cp_arg_store_real_four_tensor(x)        subroutine cp_arg_store_real_four_tensor(x)
464  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
465        use OAD_cp          use OAD_cp
466        implicit none          implicit none
467        double precision, dimension(:,:,:,:) :: x          double precision, dimension(:,:,:,:) :: x
468  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
469  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
470          write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1)          write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1)
# Line 468  C $OpenAD$ END DECLS Line 474  C $OpenAD$ END DECLS
474    
475        subroutine cp_arg_restore_real_four_tensor(x)        subroutine cp_arg_restore_real_four_tensor(x)
476  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
477        use OAD_cp          use OAD_cp
478        implicit none          implicit none
479        double precision, dimension(:,:,:,:) :: x          double precision, dimension(:,:,:,:) :: x
480  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
481          read(unit=cp_io_unit) x          read(unit=cp_io_unit) x
482  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
# Line 480  C $OpenAD$ END DECLS Line 486  C $OpenAD$ END DECLS
486    
487        subroutine cp_arg_store_real_four_tensor_a(x)        subroutine cp_arg_store_real_four_tensor_a(x)
488  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
489        use OAD_active          use OAD_active
490        use OAD_cp          use OAD_cp
491        implicit none          implicit none
492        type(active), dimension(:,:,:,:) :: x          type(active), dimension(:,:,:,:) :: x
493  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
494  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
495          write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1)%v          write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1)%v
# Line 493  C $OpenAD$ END DECLS Line 499  C $OpenAD$ END DECLS
499    
500        subroutine cp_arg_restore_real_four_tensor_a(x)        subroutine cp_arg_restore_real_four_tensor_a(x)
501  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
502        use OAD_active          use OAD_active
503        use OAD_cp          use OAD_cp
504        implicit none          implicit none
505        type(active), dimension(:,:,:,:) :: x          type(active), dimension(:,:,:,:) :: x
506  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
507          read(unit=cp_io_unit) x%v          read(unit=cp_io_unit) x%v
508  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
509          write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1,1)%v          write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1,1)%v
510  #endif  #endif
511        end subroutine        end subroutine
512    
513        subroutine cp_arg_store_real_five_tensor(x)        subroutine cp_arg_store_real_five_tensor(x)
514  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
515        use OAD_cp          use OAD_cp
516        implicit none          implicit none
517        double precision, dimension(:,:,:,:,:) :: x          double precision, dimension(:,:,:,:,:) :: x
518  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
519  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
520          write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1,1)          write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1,1)
# Line 518  C $OpenAD$ END DECLS Line 524  C $OpenAD$ END DECLS
524    
525        subroutine cp_arg_restore_real_five_tensor(x)        subroutine cp_arg_restore_real_five_tensor(x)
526  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
527        use OAD_cp          use OAD_cp
528        implicit none          implicit none
529        double precision, dimension(:,:,:,:,:) :: x          double precision, dimension(:,:,:,:,:) :: x
530  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
531          read(unit=cp_io_unit) x          read(unit=cp_io_unit) x
532  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
# Line 530  C $OpenAD$ END DECLS Line 536  C $OpenAD$ END DECLS
536    
537        subroutine cp_arg_store_real_five_tensor_a(x)        subroutine cp_arg_store_real_five_tensor_a(x)
538  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
539        use OAD_active          use OAD_active
540        use OAD_cp          use OAD_cp
541        implicit none          implicit none
542        type(active), dimension(:,:,:,:,:) :: x          type(active), dimension(:,:,:,:,:) :: x
543  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
544  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
545          write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1,1)%v          write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1,1)%v
# Line 543  C $OpenAD$ END DECLS Line 549  C $OpenAD$ END DECLS
549    
550        subroutine cp_arg_restore_real_five_tensor_a(x)        subroutine cp_arg_restore_real_five_tensor_a(x)
551  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
552        use OAD_active          use OAD_active
553        use OAD_cp          use OAD_cp
554        implicit none          implicit none
555        type(active), dimension(:,:,:,:,:) :: x          type(active), dimension(:,:,:,:,:) :: x
556  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
557          read(unit=cp_io_unit) x%v          read(unit=cp_io_unit) x%v
558  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
# Line 554  C $OpenAD$ END DECLS Line 560  C $OpenAD$ END DECLS
560  #endif  #endif
561        end subroutine        end subroutine
562    
563          subroutine cp_arg_store_real_six_tensor(x)
 C integers -----------------------------------------------------  
       subroutine cp_arg_store_integer_scalar(x)  
564  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
565        use OAD_cp          use OAD_cp
566        implicit none          implicit none
567        integer :: x          double precision, dimension(:,:,:,:,:,:) :: x
568  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
569  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
570          write(standardmessageunit,*)'OAD: cp write x ', x          write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1,1,1)
571  #endif  #endif
572          write(unit=cp_io_unit) x          write(unit=cp_io_unit) x
573        end subroutine        end subroutine
574    
575        subroutine cp_arg_restore_integer_scalar(x)        subroutine cp_arg_restore_real_six_tensor(x)
576  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
577        use OAD_cp          use OAD_cp
578        implicit none          implicit none
579        integer :: x          double precision, dimension(:,:,:,:,:,:) :: x
580  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
581          read(unit=cp_io_unit) x          read(unit=cp_io_unit) x
582  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
583          write(standardmessageunit,*)'OAD: cp read x ', x          write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1,1,1,1)
584  #endif  #endif
585        end subroutine        end subroutine
586    
587        subroutine cp_arg_store_integer_vector(x)        subroutine cp_arg_store_real_six_tensor_a(x)
588  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
589        use OAD_cp          use OAD_active
590        implicit none          use OAD_cp
591        integer, dimension(:) :: x          implicit none
592            type(active), dimension(:,:,:,:,:,:) :: x
593  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
594  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
595          write(standardmessageunit,*)'OAD: cp write x ', x(1)          write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1,1,1)%v
596  #endif  #endif
597          write(unit=cp_io_unit) x          write(unit=cp_io_unit) x%v
598        end subroutine        end subroutine
599    
600        subroutine cp_arg_restore_integer_vector(x)        subroutine cp_arg_restore_real_six_tensor_a(x)
601  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
602        use OAD_cp          use OAD_active
603        implicit none          use OAD_cp
604        integer, dimension(:) :: x          implicit none
605            type(active), dimension(:,:,:,:,:,:) :: x
606  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
607          read(unit=cp_io_unit) x          read(unit=cp_io_unit) x%v
608  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
609          write(standardmessageunit,*)'OAD: cp read x ', x(1)          write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1,1,1,1)%v
610  #endif  #endif
611        end subroutine        end subroutine
612    
613        subroutine cp_arg_store_integer_matrix(x)  C integers -----------------------------------------------------
614          subroutine cp_arg_store_integer_scalar(i)
615  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
616        use OAD_cp          use OAD_cp
617        implicit none          implicit none
618        integer, dimension(:,:) :: x          integer :: i
619  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
620  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
621          write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1)          write(standardmessageunit,*)'OAD: cp write i ', i
622  #endif  #endif
623          write(unit=cp_io_unit) x          write(unit=cp_io_unit) i
624        end subroutine        end subroutine
625    
626        subroutine cp_arg_restore_integer_matrix(x)        subroutine cp_arg_restore_integer_scalar(i)
627  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
628        use OAD_cp          use OAD_cp
629        implicit none          implicit none
630        integer, dimension(:,:) :: x          integer :: i
631  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
632          read(unit=cp_io_unit) x          read(unit=cp_io_unit) i
633  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
634          write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1)          write(standardmessageunit,*)'OAD: cp read i ', i
635  #endif  #endif
636        end subroutine        end subroutine
637    
638        subroutine cp_arg_store_integer_three_tensor(x)        subroutine cp_arg_store_integer_vector(i)
639  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
640        use OAD_cp          use OAD_cp
641        implicit none          implicit none
642        integer, dimension(:,:,:) :: x          integer, dimension(:) :: i
643  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
644  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
645          write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1)          write(standardmessageunit,*)'OAD: cp write i ', i(1)
646  #endif  #endif
647          write(unit=cp_io_unit) x          write(unit=cp_io_unit) i
648        end subroutine        end subroutine
649    
650        subroutine cp_arg_restore_integer_three_tensor(x)        subroutine cp_arg_restore_integer_vector(i)
651  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
652        use OAD_cp          use OAD_cp
653        implicit none          implicit none
654        integer, dimension(:,:,:) :: x          integer, dimension(:) :: i
655  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
656          read(unit=cp_io_unit) x          read(unit=cp_io_unit) i
657  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
658          write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1)          write(standardmessageunit,*)'OAD: cp read i ', i(1)
659  #endif  #endif
660        end subroutine        end subroutine
661    
662        subroutine cp_arg_store_integer_four_tensor(x)        subroutine cp_arg_store_integer_matrix(i)
663  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
664        use OAD_cp          use OAD_cp
665        implicit none          implicit none
666        integer, dimension(:,:,:,:) :: x          integer, dimension(:,:) :: i
667  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
668  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
669          write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1)          write(standardmessageunit,*)'OAD: cp write i ', i(1,1)
670  #endif  #endif
671          write(unit=cp_io_unit) x          write(unit=cp_io_unit) i
672        end subroutine        end subroutine
673    
674        subroutine cp_arg_restore_integer_four_tensor(x)        subroutine cp_arg_restore_integer_matrix(i)
675  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
676        use OAD_cp          use OAD_cp
677        implicit none          implicit none
678        integer, dimension(:,:,:,:) :: x          integer, dimension(:,:) :: i
679  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
680          read(unit=cp_io_unit) x          read(unit=cp_io_unit) i
681  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
682          write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1,1)          write(standardmessageunit,*)'OAD: cp read i ', i(1,1)
683  #endif  #endif
684        end subroutine        end subroutine
685    
686        subroutine cp_arg_store_integer_five_tensor(x)        subroutine cp_arg_store_integer_three_tensor(i)
687  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
688        use OAD_cp          use OAD_cp
689        implicit none          implicit none
690        integer, dimension(:,:,:,:,:) :: x          integer, dimension(:,:,:) :: i
691  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
692  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
693          write(standardmessageunit,*)'OAD: cp write x ', x(1,1,1,1,1)          write(standardmessageunit,*)'OAD: cp write i ', i(1,1,1)
694  #endif  #endif
695          write(unit=cp_io_unit) x          write(unit=cp_io_unit) i
696        end subroutine        end subroutine
697    
698        subroutine cp_arg_restore_integer_five_tensor(x)        subroutine cp_arg_restore_integer_three_tensor(i)
699  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
700        use OAD_cp          use OAD_cp
701        implicit none          implicit none
702        integer, dimension(:,:,:,:,:) :: x          integer, dimension(:,:,:) :: i
703  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
704          read (unit=cp_io_unit) x          read(unit=cp_io_unit) i
705  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
706          write(standardmessageunit,*)'OAD: cp read x ', x(1,1,1,1,1)          write(standardmessageunit,*)'OAD: cp read i ', i(1,1,1)
707    #endif
708          end subroutine
709    
710          subroutine cp_arg_store_integer_four_tensor(i)
711    C $OpenAD$ INLINE DECLS
712            use OAD_cp
713            implicit none
714            integer, dimension(:,:,:,:) :: i
715    C $OpenAD$ END DECLS
716    #ifdef OAD_DEBUG_CP
717            write(standardmessageunit,*)'OAD: cp write i ', i(1,1,1,1)
718    #endif
719            write(unit=cp_io_unit) i
720          end subroutine
721    
722          subroutine cp_arg_restore_integer_four_tensor(i)
723    C $OpenAD$ INLINE DECLS
724            use OAD_cp
725            implicit none
726            integer, dimension(:,:,:,:) :: i
727    C $OpenAD$ END DECLS
728            read(unit=cp_io_unit) i
729    #ifdef OAD_DEBUG_CP
730            write(standardmessageunit,*)'OAD: cp read i ', i(1,1,1,1)
731    #endif
732          end subroutine
733    
734          subroutine cp_arg_store_integer_five_tensor(i)
735    C $OpenAD$ INLINE DECLS
736            use OAD_cp
737            implicit none
738            integer, dimension(:,:,:,:,:) :: i
739    C $OpenAD$ END DECLS
740    #ifdef OAD_DEBUG_CP
741            write(standardmessageunit,*)'OAD: cp write i ', i(1,1,1,1,1)
742    #endif
743            write(unit=cp_io_unit) i
744          end subroutine
745    
746          subroutine cp_arg_restore_integer_five_tensor(i)
747    C $OpenAD$ INLINE DECLS
748            use OAD_cp
749            implicit none
750            integer, dimension(:,:,:,:,:) :: i
751    C $OpenAD$ END DECLS
752            read (unit=cp_io_unit) i
753    #ifdef OAD_DEBUG_CP
754            write(standardmessageunit,*)'OAD: cp read i ', i(1,1,1,1,1)
755  #endif  #endif
756        end subroutine        end subroutine
757    
758  C strings  -----------------------------------------------------  C strings  -----------------------------------------------------
759        subroutine cp_arg_store_string_scalar(x)        subroutine cp_arg_store_string_scalar(s)
760  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
761        use OAD_cp        use OAD_cp
762        implicit none        implicit none
763        character*(80) :: x        character*(80) :: s
764  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
765  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
766          write(standardmessageunit,*)'OAD: cp write x ', x          write(standardmessageunit,*)'OAD: cp write s ', s
767  #endif  #endif
768          write(unit=cp_io_unit) x          write(unit=cp_io_unit) s
769        end subroutine        end subroutine
770                
771        subroutine cp_arg_restore_string_scalar(x)        subroutine cp_arg_restore_string_scalar(s)
772  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
773        use OAD_cp        use OAD_cp
774        implicit none        implicit none
775        character*(80) :: x        character*(80) :: s
776  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
777          read (unit=cp_io_unit) x          read (unit=cp_io_unit) s
778  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
779          write(standardmessageunit,*)'OAD: cp read x ', x          write(standardmessageunit,*)'OAD: cp read s ', s
780  #endif  #endif
781        end subroutine        end subroutine
782    
783  C bools  -----------------------------------------------------  C bools  -----------------------------------------------------
784        subroutine cp_arg_store_bool_scalar(x)        subroutine cp_arg_store_bool_scalar(b)
785  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
786        use OAD_cp          use OAD_cp
787        implicit none          implicit none
788        logical :: x          logical :: b
789  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
790  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
791          write(standardmessageunit,*)'OAD: cp write x ', x          write(standardmessageunit,*)'OAD: cp write b ', b
792  #endif  #endif
793          write(unit=cp_io_unit) x          write(unit=cp_io_unit) b
794        end subroutine        end subroutine
795    
796        subroutine cp_arg_restore_bool_scalar(x)        subroutine cp_arg_restore_bool_scalar(b)
797  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
798        use OAD_cp          use OAD_cp
799        implicit none          implicit none
800        logical :: x          logical :: b
801  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
802          read (unit=cp_io_unit) x          read (unit=cp_io_unit) b
803  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
804          write(standardmessageunit,*)'OAD: cp read x ', x          write(standardmessageunit,*)'OAD: cp read b ', b
805  #endif  #endif
806        end subroutine        end subroutine
807    
808        subroutine cp_arg_store_bool_matrix(x)        subroutine cp_arg_store_bool_matrix(b)
809  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
810        use OAD_cp          use OAD_cp
811        implicit none          implicit none
812        logical, dimension(:,:) :: x          logical, dimension(:,:) :: b
813  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
814  u#ifdef OAD_DEBUG_CP  u#ifdef OAD_DEBUG_CP
815          write(standardmessageunit,*)'OAD: cp write x ', x(1)          write(standardmessageunit,*)'OAD: cp write b ', b(1,1)
816  #endif  #endif
817          write(unit=cp_io_unit) x          write(unit=cp_io_unit) b
818        end subroutine        end subroutine
819    
820        subroutine cp_arg_restore_bool_matrix(x)        subroutine cp_arg_restore_bool_matrix(b)
821  C $OpenAD$ INLINE DECLS  C $OpenAD$ INLINE DECLS
822        use OAD_cp          use OAD_cp
823        implicit none          implicit none
824        logical, dimension(:,:) :: x          logical, dimension(:,:) :: b
825  C $OpenAD$ END DECLS  C $OpenAD$ END DECLS
826          read(unit=cp_io_unit) x          read(unit=cp_io_unit) b
827  #ifdef OAD_DEBUG_CP  #ifdef OAD_DEBUG_CP
828          write(standardmessageunit,*)'OAD: cp read x ', x(1)          write(standardmessageunit,*)'OAD: cp read b ', b(1,1)
829  #endif  #endif
830        end subroutine        end subroutine

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.22