7 use size_m
, only : lxd, ldim
13 integer,
parameter :: ldg=lxd**3, lwkd=4*lxd*lxd
14 integer,
parameter :: ld=2*lxd
15 integer,
parameter :: ldw = 2*(ld**ldim)
17 real(DP),
save :: jgl(ldg), jgt(ldg)
18 real(DP),
save :: dgl(ldg), dgt(ldg)
19 integer,
save :: pjgl(0:ld*ld) = 0
20 integer,
save :: pdg(0:ld*ld) = 0
22 real(DP) :: w(ld**ldim,2)
37 integer,
intent(out) :: ip
38 integer,
intent(in) :: mx, md
40 integer :: ij, nstore, nwrkd
49 nstore = nstore + md*mx
54 call
lim_chk(nstore,ldg ,
'jgl ',
'ldg ',
'get_int_pt')
55 call
lim_chk(nwrkd ,lwkd,
'wkd ',
'lwkd ',
'get_int_pt')
57 call
gen_int(jgl(ip),jgt(ip),md,mx,wkd)
67 use size_m
, only : lxd
71 integer,
intent(out) :: ip
72 integer,
intent(in) :: mx, md
75 integer :: ij, nstore, nwrkd
84 nstore = nstore + md*mx
89 call
lim_chk(nstore,ldg ,
'dg ',
'ldg ',
'get_dgl_pt')
90 call
lim_chk(nwrkd ,lwkd,
'wkd ',
'lwkd ',
'get_dgl_pt')
92 call
gen_dgl(dgl(ip),dgt(ip),md,mx,wkd)
112 integer,
intent(in) :: mp, np
113 real(DP) :: jgl(mp,np),jgt(np*mp),w(*)
115 integer :: iz, id, n, i, j
120 call
zwgll(w(iz),jgt,np)
121 call
zwgl(w(id),jgt,mp)
149 integer,
intent(in) :: mp, np
150 real(DP) :: dgl(mp,np),dgt(np*mp),w(*)
152 integer :: iz, id, ndgt, ldgt, n, i, j
157 call
zwgl(w(iz),dgt,np)
158 call
zwgl(w(id),dgt,mp)
162 call
lim_chk(ndgt,ldgt,
'ldgt ',
'dgt ',
'gen_dgl ')
178 subroutine lim_chk(n,m,avar5,lvar5,sub_name10)
179 use size_m
, only : nid
181 character(5),
intent(in) :: avar5,lvar5
182 character(10),
intent(in) :: sub_name10
183 integer,
intent(in) :: n, m
186 write(6,1) nid,n,m,avar5,lvar5,sub_name10
187 1
format(i8,
' ERROR: :',2i12,2(1x,a5),1x,a10)
188 call
exitti(
'lim_chk problem. $',n)
subroutine transpose(a, lda, b, ldb)
subroutine get_dgl_ptr(ip, mx, md)
Get pointer to GL-GL interpolation dgl() for pair (mx,md)
Module containing memoized interpolation matrices.
subroutine get_int_ptr(ip, mx, md)
Get pointer to jgl() for interpolation pair (mx,md)
subroutine gen_int(jgl, jgt, mp, np, w)
Generate interpolation from np GLL points to mp GL points jgl = interpolation matrix, mapping from velocity nodes to pressure jgt = transpose of interpolation matrix w = work array of size (np+mp) np = number of points on GLL grid mp = number of points on GL grid.
subroutine fd_weights_full(xx, x, n, m, c)
This routine evaluates the derivative based on all points in the stencils. It is more memory efficien...
subroutine gen_dgl(dgl, dgt, mp, np, w)
Generate derivative from np GL points onto mp GL points dgl = interpolation matrix, mapping from velocity nodes to pressure dgt = transpose of interpolation matrix w = work array of size (3*np+mp) np = number of points on GLL grid mp = number of points on GL grid.
subroutine lim_chk(n, m, avar5, lvar5, sub_name10)
Check array limits.
subroutine, public zwgll(Z, W, NP)
subroutine exitti(stringi, idata)
subroutine, public zwgl(Z, W, NP)
Generate NP Gauss Legendre points (Z) and weights (W) associated with Jacobi polynomial P(N)(alpha=0...