103 import meshbase2d
104 import :: meshfield2d
105 import meshfieldcommbase
106 import sparsemat
107 import :: mgsmootherbase2d
108 class(MGSmootherBase2D), intent(inout) :: this
109 type(MeshField2D), intent(inout), target :: q
110 type(MeshField2D), intent(inout) :: res
111 type(MeshField2D), intent(in) :: f
112 type(MeshField2D), intent(inout), target :: aux_var(:)
113 integer, intent(in) :: itr
114 class(MeshFieldCommBase), intent(inout) :: var_comm
115 class(MeshFieldCommBase), intent(inout) :: aux_comm
116 type(SparseMat), intent(in) :: Dx
117 type(SparseMat), intent(in) :: Dy
118 type(SparseMat), intent(in) :: Lift
119 class(MeshBase2D), intent(in), target :: mesh2D
120 logical, intent(in) :: cal_res_flag
121 logical, intent(in) :: zero_initial_guess
122 integer, intent(in) :: mg_p_level
123 integer, intent(in) :: mg_h_level
124 integer, intent(in) :: pre_or_post_smooth