set variabes X1,X2,LA of toset => sf, optional argument to scale toset with a scalar (for example -1.0_wp)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(t_sol_var_MHD3D), | intent(inout) | :: | sf |
sf |
||
| class(c_sol_var), | intent(in) | :: | toset | |||
| real(kind=wp), | intent(in), | optional | :: | scal_in |
SUBROUTINE sol_var_MHD3D_set_to_solvar( sf ,toset,scal_in) ! MODULES IMPLICIT NONE !----------------------------------------------------------------------------------------------------------------------------------- ! INPUT VARIABLES CLASS(c_sol_var), INTENT(IN ) :: toset REAL(wp),INTENT(IN),OPTIONAL :: scal_in !----------------------------------------------------------------------------------------------------------------------------------- ! OUTPUT VARIABLES CLASS(t_sol_var_MHD3D), INTENT(INOUT) :: sf !!sf !----------------------------------------------------------------------------------------------------------------------------------- ! LOCAL VARIABLES INTEGER :: i !=================================================================================================================================== SELECT TYPE(toset); TYPE IS(t_sol_var_MHD3D) IF(.NOT.toset%initialized)THEN CALL abort(__STAMP__, & "sol_var_MHD3D_set_to: not initialized sol_var from which to set!") END IF IF(PRESENT(scal_in))THEN !$OMP PARALLEL DO & !$OMP SCHEDULE(STATIC) DEFAULT(SHARED) PRIVATE(i) DO i=1,sf%offset(3) sf%q(i)=scal_in*toset%q(i) END DO !$OMP END PARALLEL DO sf%W_MHD3D=0.0_wp ELSE !$OMP PARALLEL DO & !$OMP SCHEDULE(STATIC) DEFAULT(SHARED) PRIVATE(i) DO i=1,sf%offset(3) sf%q(i)=toset%q(i) END DO !$OMP END PARALLEL DO sf%W_MHD3D=toset%W_MHD3D END IF END SELECT !TYPE END SUBROUTINE sol_var_MHD3D_set_to_solvar