145 import meshbase3d
146 import :: meshfield3d
147 import meshfieldcommbase
148 import sparsemat
149 import :: mgsmootherbase3d
150 class(MGSmootherBase3D), intent(inout) :: this
151 type(MeshField3D), intent(inout), target :: q
152 type(MeshField3D), intent(inout) :: res
153 type(MeshField3D), intent(in) :: f
154 type(MeshField3D), intent(inout), target :: aux_var(:)
155 integer, intent(in) :: itr
156 class(MeshFieldCommBase), intent(inout) :: var_comm
157 class(MeshFieldCommBase), intent(inout) :: aux_comm
158 type(SparseMat), intent(in) :: Dx
159 type(SparseMat), intent(in) :: Dy
160 type(SparseMat), intent(in) :: Dz
161 type(SparseMat), intent(in) :: Lift
162 class(MeshBase3D), intent(in), target :: mesh3D
163 logical, intent(in) :: cal_res_flag
164 logical, intent(in) :: zero_initial_guess
165 integer, intent(in) :: mg_p_level
166 integer, intent(in) :: mg_h_level
167 integer, intent(in) :: pre_or_post_smooth