xref: /libCEED/tests/t402-qfunction-f.f90 (revision 8a4ce0d78b95fffc485d7f6e76eabd31204930a1)
1!-----------------------------------------------------------------------
2!
3! Header with QFunctions
4!
5      include 't401-qfunction-f.h'
6!-----------------------------------------------------------------------
7      program test
8      implicit none
9      include 'ceedf.h'
10
11      integer ceed,err
12      integer qf_setup,qf_mass
13      integer ctx
14      integer ctxsize
15      parameter(ctxsize=5)
16      real*8 ctxdata(5)
17
18      character arg*32
19      integer*8 coffset
20
21! LCOV_EXCL_START
22      external setup,mass
23! LCOV_EXCL_STOP
24
25      ctxdata=(/1.d0,2.d0,3.d0,4.d0,5.d0/)
26
27      call getarg(1,arg)
28      call ceedinit(trim(arg)//char(0),ceed,err)
29
30      call ceedqfunctioncreateinterior(ceed,1,setup,&
31     &SOURCE_DIR&
32     &//'t400-qfunction.h:setup'//char(0),qf_setup,err)
33      call ceedqfunctionaddinput(qf_setup,'w', 1,ceed_eval_weight,err)
34      call ceedqfunctionaddoutput(qf_setup,'qdata',1,ceed_eval_none,err)
35
36      call ceedqfunctioncreateinterior(ceed,1,mass,&
37     &SOURCE_DIR&
38     &//'t400-qfunction.h:mass'//char(0),qf_mass,err)
39      call ceedqfunctionaddinput(qf_mass,'qdata',1,ceed_eval_none,err)
40      call ceedqfunctionaddinput(qf_mass,'u',1,ceed_eval_interp,err)
41      call ceedqfunctionaddoutput(qf_mass,'v',1,ceed_eval_interp,err)
42
43      call ceedqfunctionview(qf_setup,err)
44      call ceedqfunctionview(qf_mass,err)
45
46      call ceedqfunctioncontextcreate(ceed,ctx,err)
47      coffset=0
48      call ceedqfunctioncontextsetdata(ctx,ceed_mem_host,ceed_use_pointer,ctxsize,&
49     & ctxdata,coffset,err)
50      call ceedqfunctioncontextview(ctx,err)
51
52      call ceedqfunctiondestroy(qf_setup,err)
53      call ceedqfunctiondestroy(qf_mass,err)
54      call ceeddestroy(ceed,err)
55      end
56!-----------------------------------------------------------------------
57