project from interpolation points to all modes DOFs = addDOFs+ fac MATMUL(base_IP_DOF,y_IP)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(t_fBase), | intent(in) | :: | sf |
self |
||
| logical, | intent(in) | :: | add |
=F initialize DOFs , =T add to DOFs |
||
| real(kind=wp), | intent(in) | :: | factor |
scale result by factor, before adding to DOFs (should be =1.0_wp if not needed) |
||
| integer, | intent(in) | :: | deriv |
=0: base, =2: dthet , =3: dzeta |
||
| real(kind=wp), | intent(in) | :: | y_IP(:) | |||
| real(kind=wp), | intent(inout) | :: | DOFs(1:sf%modes) |
array of all modes |
SUBROUTINE fBase_projectIPtoDOF(sf,add,factor,deriv,y_IP,DOFs) ! MODULES IMPLICIT NONE !----------------------------------------------------------------------------------------------------------------------------------- ! INPUT VARIABLES CLASS(t_fBase), INTENT(IN ) :: sf !! self LOGICAL , INTENT(IN ) :: add !! =F initialize DOFs , =T add to DOFs REAL(wp) , INTENT(IN ) :: factor !! scale result by factor, before adding to DOFs (should be =1.0_wp if not needed) INTEGER , INTENT(IN ) :: deriv !! =0: base, =2: dthet , =3: dzeta REAL(wp) , INTENT(IN ) :: y_IP(:) !----------------------------------------------------------------------------------------------------------------------------------- ! OUTPUT VARIABLES REAL(wp) , INTENT(INOUT) :: DOFs(1:sf%modes) !! array of all modes !----------------------------------------------------------------------------------------------------------------------------------- ! LOCAL VARIABLES REAL(wp) :: radd !=================================================================================================================================== IF(SIZE(y_IP,1).NE.sf%mn_IP) CALL abort(__STAMP__, & 'y_IP not correct when calling fBase_projectIPtoDOF' ) radd=MERGE(1.0_wp,0.0_wp,add) SELECT CASE(deriv) CASE(0) __PAMATVEC_T(radd,DOFs,factor,sf%base_IP,y_IP) CASE(DERIV_THET) __PAMATVEC_T(radd,DOFs,factor,sf%base_dthet_IP,y_IP) CASE(DERIV_ZETA) __PAMATVEC_T(radd,DOFs,factor,sf%base_dzeta_IP,y_IP) CASE DEFAULT CALL abort(__STAMP__, & "fbase_projectIPtoDOF: derivative must be 0,DERIV_THET,DERIV_ZETA!") END SELECT END SUBROUTINE fBase_projectIPtoDOF