xref: /libCEED/tests/t522-operator-f.h (revision 3ab4fca656a1e01d815a06ccfa0fdd49692deced)
1 !-----------------------------------------------------------------------
2       subroutine setup(ctx,q,u1,u2,u3,u4,u5,u6,u7,u8,u9,u10,u11,u12,u13,u14,&
3 &           u15,u16,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,ierr)
4       real*8 ctx
5       real*8 u1(1)
6       real*8 u2(1)
7       real*8 v1(1)
8       real*8 w
9       integer q,ierr
10 
11       do i=1,q
12         w = u1(i)/(u2(i+0*q)*u2(i+3*q)-u2(i+1*q)*u2(i+2*q))
13         v1(i+0*q)=w*(u2(i+2*q)*u2(i+2*q)+u2(i+3*q)*u2(i+3*q))
14         v1(i+1*q)=w*(u2(i+0*q)*u2(i+0*q)+u2(i+1*q)*u2(i+1*q))
15         v1(i+2*q)=w*(u2(i+0*q)*u2(i+2*q)+u2(i+1*q)*u2(i+3*q))
16       enddo
17 
18       ierr=0
19       end
20 !-----------------------------------------------------------------------
21       subroutine diff(ctx,q,u1,u2,u3,u4,u5,u6,u7,u8,u9,u10,u11,u12,u13,u14,&
22 &           u15,u16,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,ierr)
23       real*8 ctx
24       real*8 u1(1)
25       real*8 u2(1)
26       real*8 v1(1)
27       integer q,ierr
28 
29       do i=1,q
30         v1(i+0*q)=u1(i+0*q)*u2(i+0*q)+u1(i+2*q)*u2(i+1*q)
31         v1(i+1*q)=u1(i+2*q)*u2(i+0*q)+u1(i+1*q)*u2(i+1*q)
32       enddo
33 
34       ierr=0
35       end
36 !-----------------------------------------------------------------------
37