private pure function varmix_res_fn(f2_dx2, beta_dx2, cg1, alpha, p) result(r)
Divide-free resolution function for power p (even). p=2:
dx_term/(dx_term + (alpha*cg1)^2); general even p:
dx_term^(p/2)/(dx_term^(p/2) + (alpha*cg1)^p). dx_term =
f2_dx2 + cg1*beta_dx2. -> 1 where unresolved, -> 0 where Ld>>dx.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Variables
Type
Visibility
Attributes
Name
Initial
real(kind=wp),
private
::
den_add
real(kind=wp),
private
::
dx_term
real(kind=wp),
private
::
num
integer,
private
::
ph
Source Code
pure function varmix_res_fn(f2_dx2,beta_dx2,cg1,alpha,p)result(r)!$acc routine seq!! Divide-free resolution function for power `p` (even). p=2:!! `dx_term/(dx_term + (alpha*cg1)^2)`; general even p:!! `dx_term^(p/2)/(dx_term^(p/2) + (alpha*cg1)^p)`. `dx_term =!! f2_dx2 + cg1*beta_dx2`. -> 1 where unresolved, -> 0 where Ld>>dx.real(wp),intent(in)::f2_dx2,beta_dx2,cg1,alphainteger,intent(in)::preal(wp)::r,dx_term,num,den_addinteger::phdx_term=f2_dx2+cg1*beta_dx2if(p==2)thennum=dx_termden_add=(alpha*cg1)*(alpha*cg1)elseph=p/2num=dx_term**phden_add=(alpha*cg1)**pend ifr=num/(num+den_add)end function varmix_res_fn