copy tocopy => sf
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(t_sol_var_MHD3D), | intent(inout) | :: | sf |
sf |
||
| class(c_sol_var), | intent(in) | :: | tocopy |
SUBROUTINE sol_var_MHD3D_copy( sf ,tocopy) ! MODULES IMPLICIT NONE !----------------------------------------------------------------------------------------------------------------------------------- ! INPUT VARIABLES CLASS(c_sol_var), INTENT(IN ) :: tocopy !----------------------------------------------------------------------------------------------------------------------------------- ! OUTPUT VARIABLES CLASS(t_sol_var_MHD3D), INTENT(INOUT) :: sf !!sf !----------------------------------------------------------------------------------------------------------------------------------- ! LOCAL VARIABLES INTEGER :: i !=================================================================================================================================== SELECT TYPE(tocopy); TYPE IS(t_sol_var_MHD3D) IF(.NOT.tocopy%initialized)THEN CALL abort(__STAMP__, & "sol_var_MHD3D_copy: not initialized sol_var from which to copy!") END IF IF(sf%initialized) THEN WRITE(*,*)'WARNING!! reinit of sol_var_MHD3D in copy' CALL sf%free() END IF CALL sf%init((/size(tocopy%X1,1),size(tocopy%X2,1),size(tocopy%LA,1), & size(tocopy%X1,2),size(tocopy%X2,2),size(tocopy%LA,2)/) ) !$OMP PARALLEL DO & !$OMP SCHEDULE(STATIC) DEFAULT(SHARED) PRIVATE(i) DO i=1,sf%offset(3) sf%q(i)=tocopy%q(i) END DO !$OMP END PARALLEL DO sf%W_MHD3D=tocopy%W_MHD3D END SELECT !TYPE END SUBROUTINE sol_var_MHD3D_copy