From 09fe202de6a3f6030e2e74f543caa51a4f9408ce Mon Sep 17 00:00:00 2001 From: odemirel <odemirel@7c7fe9aa-52eb-4d9e-b0a8-ba7d787348e9> Date: Thu, 6 May 2010 14:22:04 +0000 Subject: [PATCH] - Multigrid related updates such as missing USE statements, changed signatures of function calls - compiles but needs some further testing using the Maxwell client (coming soon) git-svn-id: https://ppm.inf.ethz.ch/svn/ppmnumerics/branches/ngtopo/libppmnumerics@614 7c7fe9aa-52eb-4d9e-b0a8-ba7d787348e9 --- src/ppm_mg_alloc_bc.f | 2 + src/ppm_mg_alloc_field.f | 2 + src/ppm_mg_core.f | 1 + src/ppm_mg_finalize.f | 2 + src/ppm_mg_init.f | 4 +- src/ppm_mg_prolong.f | 1 + src/ppm_mg_res_coarse.f | 2 +- src/ppm_mg_res_fine.f | 2 +- src/ppm_mg_restrict.f | 74 +++++++++++--------- src/ppm_mg_smooth_coarse.f | 140 ++++++++++++++++++++----------------- src/ppm_mg_smooth_fine.f | 128 +++++++++++++++++---------------- src/ppm_mg_solv.f | 11 +-- src/ppm_module_mg.f | 6 ++ src/ppm_module_mg_init.f | 89 ++++++++++++----------- 14 files changed, 247 insertions(+), 217 deletions(-) diff --git a/src/ppm_mg_alloc_bc.f b/src/ppm_mg_alloc_bc.f index bb66845..7504095 100644 --- a/src/ppm_mg_alloc_bc.f +++ b/src/ppm_mg_alloc_bc.f @@ -99,6 +99,8 @@ USE ppm_module_substop USE ppm_module_error USE ppm_module_alloc + USE ppm_module_write + IMPLICIT NONE #if __KIND == __SINGLE_PRECISION | __KIND == __SINGLE_PRECISION_COMPLEX diff --git a/src/ppm_mg_alloc_field.f b/src/ppm_mg_alloc_field.f index dcacdbf..96348d4 100644 --- a/src/ppm_mg_alloc_field.f +++ b/src/ppm_mg_alloc_field.f @@ -102,6 +102,8 @@ USE ppm_module_substart USE ppm_module_substop USE ppm_module_error + USE ppm_module_write + IMPLICIT NONE #if __KIND == __SINGLE_PRECISION | __KIND == __SINGLE_PRECISION_COMPLEX INTEGER, PARAMETER :: MK = ppm_kind_single diff --git a/src/ppm_mg_core.f b/src/ppm_mg_core.f index 17a49f8..a5268c0 100644 --- a/src/ppm_mg_core.f +++ b/src/ppm_mg_core.f @@ -75,6 +75,7 @@ USE ppm_module_substop USE ppm_module_error USE ppm_module_alloc + USE ppm_module_write IMPLICIT NONE #if __KIND == __SINGLE_PRECISION INTEGER, PARAMETER :: MK = ppm_kind_single diff --git a/src/ppm_mg_finalize.f b/src/ppm_mg_finalize.f index abf4f73..af1e7c7 100644 --- a/src/ppm_mg_finalize.f +++ b/src/ppm_mg_finalize.f @@ -94,6 +94,8 @@ USE ppm_module_substop USE ppm_module_error USE ppm_module_alloc + USE ppm_module_write + IMPLICIT NONE #if __KIND == __SINGLE_PRECISION | __KIND == __SINGLE_PRECISION_COMPLEX INTEGER, PARAMETER :: MK = ppm_kind_single diff --git a/src/ppm_mg_init.f b/src/ppm_mg_init.f index cf4fb73..b154051 100644 --- a/src/ppm_mg_init.f +++ b/src/ppm_mg_init.f @@ -149,13 +149,13 @@ ! Modules !---------------------------------------------------------------------- USE ppm_module_data - USE ppm_module_data_mg USE ppm_module_mg_alloc USE ppm_module_alloc USE ppm_module_mg_alloc USE ppm_module_error - USE ppm_module_mesh_derive + USE ppm_module_write + USE ppm_module_mesh USE ppm_module_substart USE ppm_module_substop USE ppm_module_typedef diff --git a/src/ppm_mg_prolong.f b/src/ppm_mg_prolong.f index d130b14..8cd98b6 100644 --- a/src/ppm_mg_prolong.f +++ b/src/ppm_mg_prolong.f @@ -92,6 +92,7 @@ USE ppm_module_substop USE ppm_module_error USE ppm_module_alloc + USE ppm_module_write IMPLICIT NONE #if __KIND == __SINGLE_PRECISION INTEGER, PARAMETER :: MK = ppm_kind_single diff --git a/src/ppm_mg_res_coarse.f b/src/ppm_mg_res_coarse.f index bfe6d1f..a45eaa7 100644 --- a/src/ppm_mg_res_coarse.f +++ b/src/ppm_mg_res_coarse.f @@ -90,7 +90,7 @@ !----------------------------------------------------------------------- USE ppm_module_data USE ppm_module_data_mg - + USE ppm_module_write USE ppm_module_substart USE ppm_module_substop USE ppm_module_error diff --git a/src/ppm_mg_res_fine.f b/src/ppm_mg_res_fine.f index c29375e..f00f270 100644 --- a/src/ppm_mg_res_fine.f +++ b/src/ppm_mg_res_fine.f @@ -87,7 +87,7 @@ !----------------------------------------------------------------------- USE ppm_module_data USE ppm_module_data_mg - + USE ppm_module_write USE ppm_module_substart USE ppm_module_substop USE ppm_module_error diff --git a/src/ppm_mg_restrict.f b/src/ppm_mg_restrict.f index f5f635b..df23f92 100644 --- a/src/ppm_mg_restrict.f +++ b/src/ppm_mg_restrict.f @@ -97,9 +97,12 @@ !----------------------------------------------------------------------- USE ppm_module_data USE ppm_module_data_mg - USE ppm_module_error + USE ppm_module_alloc USE ppm_module_substart USE ppm_module_substop + USE ppm_module_error + USE ppm_module_write + USE ppm_module_map IMPLICIT NONE #if __KIND == __SINGLE_PRECISION INTEGER, PARAMETER :: MK = ppm_kind_single @@ -274,14 +277,15 @@ ENDDO ENDDO ENDDO - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlevm1),& - & ghostsize,ppm_param_map_ghost_get,info) - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlevm1),& - & ghostsize,ppm_param_map_push,info) - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlevm1),& - & ghostsize,ppm_param_map_send,info) - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlevm1),& - & ghostsize,ppm_param_map_pop,info) + CALL ppm_map_field_ghost_get(topoid,mesh_id_g(mlevm1),& + & ghostsize,info) + CALL ppm_map_field_push(topoid,mesh_id_g(mlevm1),uc_dummy,& + & info) + CALL ppm_map_field_send(info) + !TODO: I'm not 100% sure about that since the signature + !has been changed dramatically + CALL ppm_map_field_pop(topoid,mesh_id_g(mlevm1),uc_dummy,& + & ghostsize,info) DO isub=1,nsubs terr=>mgfield(isub,mlevm1)%err pfc=>mgfield(isub,mlev)%fc @@ -352,14 +356,15 @@ ENDDO ENDDO ENDDO - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlevm1),& - & ghostsize,ppm_param_map_ghost_get,info) - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlevm1),& - & ghostsize,ppm_param_map_push,info) - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlevm1),& - & ghostsize,ppm_param_map_send,info) - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlevm1),& - & ghostsize,ppm_param_map_pop,info) + CALL ppm_map_field_ghost_get(topoid,mesh_id_g(mlevm1),& + & ghostsize,info) + CALL ppm_map_field_push(topoid,mesh_id_g(mlevm1),uc_dummy,& + & info) + CALL ppm_map_field_send(info) + !TODO: I'm not 100% sure about that since the signature + !has been changed dramatically + CALL ppm_map_field_pop(topoid,mesh_id_g(mlevm1),uc_dummy,& + & ghostsize,info) DO isub=1,nsubs @@ -477,14 +482,16 @@ ENDDO ENDDO ENDDO - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlevm1),& - & ghostsize,ppm_param_map_ghost_get,info) - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlevm1),& - & ghostsize,ppm_param_map_push,info) - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlevm1),& - & ghostsize,ppm_param_map_send,info) - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlevm1),& - & ghostsize,ppm_param_map_pop,info) + + CALL ppm_map_field_ghost_get(topoid,mesh_id_g(mlevm1),& + & ghostsize,info) + CALL ppm_map_field_push(topoid,mesh_id_g(mlevm1),uc_dummy,& + & vecdim,info) + CALL ppm_map_field_send(info) + !TODO: I'm not 100% sure about that since the signature + !has been changed dramatically + CALL ppm_map_field_pop(topoid,mesh_id_g(mlevm1),uc_dummy,& + & vecdim,ghostsize,info) DO isub=1,nsubs terr=>mgfield(isub,mlevm1)%err pfc=>mgfield(isub,mlev)%fc @@ -573,14 +580,15 @@ ENDDO ENDDO ENDDO - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlevm1),& - & ghostsize,ppm_param_map_ghost_get,info) - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlevm1),& - & ghostsize,ppm_param_map_push,info) - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlevm1),& - & ghostsize,ppm_param_map_send,info) - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlevm1),& - & ghostsize,ppm_param_map_pop,info) + CALL ppm_map_field_ghost_get(topoid,mesh_id_g(mlevm1),& + & ghostsize,info) + CALL ppm_map_field_push(topoid,mesh_id_g(mlevm1),uc_dummy,& + & vecdim,info) + CALL ppm_map_field_send(info) + !TODO: I'm not 100% sure about that since the signature + !has been changed dramatically + CALL ppm_map_field_pop(topoid,mesh_id_g(mlevm1),uc_dummy,& + & vecdim,ghostsize,info) DO isub=1,nsubs terr=>mgfield(isub,mlevm1)%err pfc=>mgfield(isub,mlev)%fc diff --git a/src/ppm_mg_smooth_coarse.f b/src/ppm_mg_smooth_coarse.f index 2c7afdb..fa82836 100644 --- a/src/ppm_mg_smooth_coarse.f +++ b/src/ppm_mg_smooth_coarse.f @@ -120,7 +120,8 @@ USE ppm_module_error USE ppm_module_alloc USE ppm_module_map - + USE ppm_module_data_mesh + USE ppm_module_write IMPLICIT NONE #if __KIND == __SINGLE_PRECISION INTEGER, PARAMETER :: MK = ppm_kind_single @@ -388,14 +389,16 @@ !---------------------------------------------------------------- !Communicate !---------------------------------------------------------------- - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_ghost_get,info) - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_push,info) - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_send,info) - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_pop,info) + + CALL ppm_map_field_ghost_get(topoid,mesh_id_g(mlev),& + & ghostsize,info) + CALL ppm_map_field_push(topoid,mesh_id_g(mlev),uc_dummy,& + & info) + CALL ppm_map_field_send(info) + !TODO: I'm not 100% sure about that since the signature + !has been changed dramatically + CALL ppm_map_field_pop(topoid,mesh_id_g(mlev),uc_dummy,& + & ghostsize,info) DO isub=1,nsubs tuc=>mgfield(isub,mlev)%uc tuc(:,:)=uc_dummy(& @@ -422,14 +425,15 @@ ENDIF ENDDO!DO color IF (isweep.EQ.nsweep) THEN - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_ghost_get,info) - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_push,info) - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_send,info) - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_pop,info) + CALL ppm_map_field_ghost_get(topoid,mesh_id_g(mlev),& + & ghostsize,info) + CALL ppm_map_field_push(topoid,mesh_id_g(mlev),uc_dummy,& + & info) + CALL ppm_map_field_send(info) + !TODO: I'm not 100% sure about that since the signature + !has been changed dramatically + CALL ppm_map_field_pop(topoid,mesh_id_g(mlev),uc_dummy,& + & ghostsize,info) DO isub=1,nsubs tuc=>mgfield(isub,mlev)%uc tuc(:,:)=uc_dummy(& @@ -486,14 +490,15 @@ !---------------------------------------------------------------- !Communicate !---------------------------------------------------------------- - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_ghost_get,info) - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_push,info) - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_send,info) - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_pop,info) + CALL ppm_map_field_ghost_get(topoid,mesh_id_g(mlev),& + & ghostsize,info) + CALL ppm_map_field_push(topoid,mesh_id_g(mlev),uc_dummy,& + & info) + CALL ppm_map_field_send(info) + !TODO: I'm not 100% sure about that since the signature + !has been changed dramatically + CALL ppm_map_field_pop(topoid,mesh_id_g(mlev),uc_dummy,& + & ghostsize,info) a=0 b=0 c=0 @@ -623,14 +628,15 @@ ENDIF ENDDO!DO color IF (isweep.EQ.nsweep) THEN - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_ghost_get,info) - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_push,info) - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_send,info) - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_pop,info) + CALL ppm_map_field_ghost_get(topoid,mesh_id_g(mlev),& + & ghostsize,info) + CALL ppm_map_field_push(topoid,mesh_id_g(mlev),uc_dummy,& + & info) + CALL ppm_map_field_send(info) + !TODO: I'm not 100% sure about that since the signature + !has been changed dramatically + CALL ppm_map_field_pop(topoid,mesh_id_g(mlev),uc_dummy,& + & ghostsize,info) ENDIF DO isub=1,nsubs tuc=>mgfield(isub,mlev)%uc @@ -690,14 +696,15 @@ !---------------------------------------------------------------- !Communicate !---------------------------------------------------------------- - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_ghost_get,info) - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_push,info) - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_send,info) - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_pop,info) + CALL ppm_map_field_ghost_get(topoid,mesh_id_g(mlev),& + & ghostsize,info) + CALL ppm_map_field_push(topoid,mesh_id_g(mlev),uc_dummy,& + & vecdim,info) + CALL ppm_map_field_send(info) + !TODO: I'm not 100% sure about that since the signature + !has been changed dramatically + CALL ppm_map_field_pop(topoid,mesh_id_g(mlev),uc_dummy,& + & vecdim,ghostsize,info) DO isub=1,nsubs tuc=>mgfield(isub,mlev)%uc tuc(:,:,:)=uc_dummy(& @@ -725,14 +732,15 @@ ENDIF ENDDO!DO color IF (isweep.EQ.nsweep) THEN - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_ghost_get,info) - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_push,info) - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_send,info) - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_pop,info) + CALL ppm_map_field_ghost_get(topoid,mesh_id_g(mlev),& + & ghostsize,info) + CALL ppm_map_field_push(topoid,mesh_id_g(mlev),uc_dummy,& + & vecdim,info) + CALL ppm_map_field_send(info) + !TODO: I'm not 100% sure about that since the signature + !has been changed dramatically + CALL ppm_map_field_pop(topoid,mesh_id_g(mlev),uc_dummy,& + & vecdim,ghostsize,info) DO isub=1,nsubs tuc=>mgfield(isub,mlev)%uc tuc(:,:,:)=uc_dummy(& @@ -813,14 +821,15 @@ !---------------------------------------------------------------- !Communicate !---------------------------------------------------------------- - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_ghost_get,info) - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_push,info) - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_send,info) - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_pop,info) + CALL ppm_map_field_ghost_get(topoid,mesh_id_g(mlev),& + & ghostsize,info) + CALL ppm_map_field_push(topoid,mesh_id_g(mlev),uc_dummy,& + & vecdim,info) + CALL ppm_map_field_send(info) + !TODO: I'm not 100% sure about that since the signature + !has been changed dramatically + CALL ppm_map_field_pop(topoid,mesh_id_g(mlev),uc_dummy,& + & vecdim,ghostsize,info) a=0 b=0 c=0 @@ -1006,14 +1015,15 @@ ENDIF ENDDO!DO color IF (isweep.EQ.nsweep) THEN - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_ghost_get,info) - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_push,info) - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_send,info) - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_pop,info) + CALL ppm_map_field_ghost_get(topoid,mesh_id_g(mlev),& + & ghostsize,info) + CALL ppm_map_field_push(topoid,mesh_id_g(mlev),uc_dummy,& + & vecdim,info) + CALL ppm_map_field_send(info) + !TODO: I'm not 100% sure about that since the signature + !has been changed dramatically + CALL ppm_map_field_pop(topoid,mesh_id_g(mlev),uc_dummy,& + & vecdim,ghostsize,info) DO isub=1,nsubs tuc=>mgfield(isub,mlev)%uc DO k=1-ghostsize(3),max_node(3,mlev)+ghostsize(3) diff --git a/src/ppm_mg_smooth_fine.f b/src/ppm_mg_smooth_fine.f index 7bbaafb..559ab9c 100644 --- a/src/ppm_mg_smooth_fine.f +++ b/src/ppm_mg_smooth_fine.f @@ -114,7 +114,8 @@ USE ppm_module_error USE ppm_module_alloc USE ppm_module_map - + USE ppm_module_data_mesh + USE ppm_module_write IMPLICIT NONE #if __KIND == __SINGLE_PRECISION INTEGER, PARAMETER :: MK = ppm_kind_single @@ -353,14 +354,14 @@ dz=dz_d !---------------------------------------------------------------- !Communicate !---------------------------------------------------------------- - CALL ppm_map_field_ghost(u,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_ghost_get,info) - CALL ppm_map_field_ghost(u,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_push,info) - CALL ppm_map_field_ghost(u,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_send,info) - CALL ppm_map_field_ghost(u,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_pop,info) + + CALL ppm_map_field_ghost_get(topoid,mesh_id_g(mlev),& + & ghostsize,info) + CALL ppm_map_field_push(topoid,mesh_id_g(mlev),u,info) + CALL ppm_map_field_send(info) + !TODO: I'm not 100% sure about that since the signature + !has been changed dramatically + CALL ppm_map_field_pop(topoid,mesh_id_g(mlev),u,ghostsize,info) DO isub=1,nsubs DO j=start(2,isub,1),istop(2,isub,1) DO i=start(1,isub,1)+mod(j+color,2),istop(1,isub,1),2 @@ -373,14 +374,13 @@ dz=dz_d ENDDO !isub ENDDO!DO color IF (isweep.EQ.nsweep) THEN - CALL ppm_map_field_ghost(u,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_ghost_get,info) - CALL ppm_map_field_ghost(u,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_push,info) - CALL ppm_map_field_ghost(u,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_send,info) - CALL ppm_map_field_ghost(u,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_pop,info) + CALL ppm_map_field_ghost_get(topoid,mesh_id_g(mlev),& + & ghostsize,info) + CALL ppm_map_field_push(topoid,mesh_id_g(mlev),u,info) + CALL ppm_map_field_send(info) + !TODO: I'm not 100% sure about that since the signature + !has been changed dramatically + CALL ppm_map_field_pop(topoid,mesh_id_g(mlev),u,ghostsize,info) ENDIF ENDDO @@ -481,14 +481,13 @@ dz=dz_d !Communicate red(even) if color==0 or communicate black(odd) !if color==1 !---------------------------------------------------------------- - CALL ppm_map_field_ghost(u,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_ghost_get,info) - CALL ppm_map_field_ghost(u,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_push,info) - CALL ppm_map_field_ghost(u,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_send,info) - CALL ppm_map_field_ghost(u,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_pop,info) + CALL ppm_map_field_ghost_get(topoid,mesh_id_g(mlev),& + & ghostsize,info) + CALL ppm_map_field_push(topoid,mesh_id_g(mlev),u,info) + CALL ppm_map_field_send(info) + !TODO: I'm not 100% sure about that since the signature + !has been changed dramatically + CALL ppm_map_field_pop(topoid,mesh_id_g(mlev),u,ghostsize,info) DO isub=1,nsubs DO k=start(3,isub,1)+e(isub),istop(3,isub,1)-g(isub) DO j=start(2,isub,1)+c(isub),istop(2,isub,1)-d(isub) @@ -512,14 +511,13 @@ dz=dz_d ENDDO!subs ENDDO!DO color IF (isweep.EQ.nsweep) THEN - CALL ppm_map_field_ghost(u,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_ghost_get,info) - CALL ppm_map_field_ghost(u,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_push,info) - CALL ppm_map_field_ghost(u,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_send,info) - CALL ppm_map_field_ghost(u,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_pop,info) + CALL ppm_map_field_ghost_get(topoid,mesh_id_g(mlev),& + & ghostsize,info) + CALL ppm_map_field_push(topoid,mesh_id_g(mlev),u,info) + CALL ppm_map_field_send(info) + !TODO: I'm not 100% sure about that since the signature + !has been changed dramatically + CALL ppm_map_field_pop(topoid,mesh_id_g(mlev),u,ghostsize,info) ENDIF ENDDO #endif @@ -535,14 +533,14 @@ dz=dz_d !Communicate red(even) if color==0 or communicate black(odd) !if color==1 !---------------------------------------------------------------- - CALL ppm_map_field_ghost(u,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_ghost_get,info) - CALL ppm_map_field_ghost(u,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_push,info) - CALL ppm_map_field_ghost(u,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_send,info) - CALL ppm_map_field_ghost(u,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_pop,info) + CALL ppm_map_field_ghost_get(topoid,mesh_id_g(mlev),& + & ghostsize,info) + CALL ppm_map_field_push(topoid,mesh_id_g(mlev),u,vecdim,info) + CALL ppm_map_field_send(info) + !TODO: I'm not 100% sure about that since the signature + !has been changed dramatically + CALL ppm_map_field_pop(topoid,mesh_id_g(mlev),u,& + & vecdim,ghostsize,info) DO isub=1,nsubs DO j=start(2,isub,1),istop(2,isub,1) DO i=start(1,isub,1)+mod(j+color,2),istop(1,isub,1),2 @@ -557,14 +555,14 @@ dz=dz_d ENDDO ENDDO!DO color IF (isweep.EQ.nsweep) THEN - CALL ppm_map_field_ghost(u,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_ghost_get,info) - CALL ppm_map_field_ghost(u,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_push,info) - CALL ppm_map_field_ghost(u,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_send,info) - CALL ppm_map_field_ghost(u,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_pop,info) + CALL ppm_map_field_ghost_get(topoid,mesh_id_g(mlev),& + & ghostsize,info) + CALL ppm_map_field_push(topoid,mesh_id_g(mlev),u,vecdim,info) + CALL ppm_map_field_send(info) + !TODO: I'm not 100% sure about that since the signature + !has been changed dramatically + CALL ppm_map_field_pop(topoid,mesh_id_g(mlev),u,& + & vecdim,ghostsize,info) ENDIF ENDDO #elif __MESH_DIM == __3D @@ -671,14 +669,14 @@ dz=dz_d !Communicate red(even) if color==0 or communicate black(odd) !if color==1 !---------------------------------------------------------------- - CALL ppm_map_field_ghost(u,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_ghost_get,info) - CALL ppm_map_field_ghost(u,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_push,info) - CALL ppm_map_field_ghost(u,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_send,info) - CALL ppm_map_field_ghost(u,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_pop,info) + CALL ppm_map_field_ghost_get(topoid,mesh_id_g(mlev),& + & ghostsize,info) + CALL ppm_map_field_push(topoid,mesh_id_g(mlev),u,vecdim,info) + CALL ppm_map_field_send(info) + !TODO: I'm not 100% sure about that since the signature + !has been changed dramatically + CALL ppm_map_field_pop(topoid,mesh_id_g(mlev),u,& + & vecdim,ghostsize,info) #ifdef __VECTOR DO isub=1,nsubs DO k=start(3,isub,1)+e(isub),istop(3,isub,1)-g(isub) @@ -747,14 +745,14 @@ dz=dz_d #endif ENDDO!DO color IF (isweep.EQ.nsweep) THEN - CALL ppm_map_field_ghost(u,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_ghost_get,info) - CALL ppm_map_field_ghost(u,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_push,info) - CALL ppm_map_field_ghost(u,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_send,info) - CALL ppm_map_field_ghost(u,vecdim,topoid,mesh_id_g(mlev),& - & ghostsize,ppm_param_map_pop,info) + CALL ppm_map_field_ghost_get(topoid,mesh_id_g(mlev),& + & ghostsize,info) + CALL ppm_map_field_push(topoid,mesh_id_g(mlev),u,vecdim,info) + CALL ppm_map_field_send(info) + !TODO: I'm not 100% sure about that since the signature + !has been changed dramatically + CALL ppm_map_field_pop(topoid,mesh_id_g(mlev),u,& + & vecdim,ghostsize,info) ENDIF ENDDO iopt = ppm_param_dealloc diff --git a/src/ppm_mg_solv.f b/src/ppm_mg_solv.f index 9f57ebd..eec243b 100644 --- a/src/ppm_mg_solv.f +++ b/src/ppm_mg_solv.f @@ -121,7 +121,7 @@ !---------------------------------------------------------------------- USE ppm_module_data USE ppm_module_data_mg - + USE ppm_module_data_mesh USE ppm_module_substart USE ppm_module_substop USE ppm_module_error @@ -131,6 +131,7 @@ USE ppm_module_mg_res USE ppm_module_mg_prolong USE ppm_module_mg_smooth + USE ppm_module_write IMPLICIT NONE #ifdef __MPI INCLUDE 'mpif.h' @@ -583,8 +584,8 @@ ENDIF uc_dummy(:,:,:,:)=0.0_MK #endif - CALL ppm_map_field_ghost(uc_dummy,topoid,mesh_id_g(i),& - & ghostsize,ppm_param_map_init,info) + CALL ppm_map_field_ghost_init(topoid,mesh_id_g(i),& + & ghostsize,info) #if __MESH_DIM == __2D iopt = ppm_param_dealloc ldl3(1) = 1-ghostsize(1) @@ -658,8 +659,8 @@ ENDIF uc_dummy(:,:,:,:,:)=0.0_MK #endif - CALL ppm_map_field_ghost(uc_dummy,vecdim,topoid,mesh_id_g(i),& - & ghostsize,ppm_param_map_init,info) + CALL ppm_map_field_ghost_init(topoid,mesh_id_g(i),& + & ghostsize,info) #if __MESH_DIM == __2D iopt = ppm_param_dealloc ldl4(1) = 1-ghostsize(1) diff --git a/src/ppm_module_mg.f b/src/ppm_module_mg.f index 1fab505..2b853a7 100644 --- a/src/ppm_module_mg.f +++ b/src/ppm_module_mg.f @@ -33,5 +33,11 @@ USE ppm_module_mg_init USE ppm_module_mg_solv USE ppm_module_mg_finalize + USE ppm_module_mg_alloc + USE ppm_module_mg_core + USE ppm_module_mg_prolong + USE ppm_module_mg_res + USE ppm_module_mg_restrict + USE ppm_module_mg_smooth END MODULE ppm_module_mg diff --git a/src/ppm_module_mg_init.f b/src/ppm_module_mg_init.f index 214e920..ed91a64 100644 --- a/src/ppm_module_mg_init.f +++ b/src/ppm_module_mg_init.f @@ -1,23 +1,23 @@ -!------------------------------------------------------------------------- -! Module : ppm_module_mg_init -!------------------------------------------------------------------------- -! -! Purpose : module of the initialization routine -! -! -! Remarks : -! -! References : -! -! Revisions : -!------------------------------------------------------------------------- -! -!------------------------------------------------------------------------- -! Parallel Particle Mesh Library (PPM) -! Institute of Computational Science -! ETH Zentrum, Hirschengraben 84 -! CH-8092 Zurich, Switzerland -!------------------------------------------------------------------------- + !------------------------------------------------------------------------- + ! Module : ppm_module_mg_init + !------------------------------------------------------------------------- + ! + ! Purpose : module of the initialization routine + ! + ! + ! Remarks : + ! + ! References : + ! + ! Revisions : + !------------------------------------------------------------------------- + ! + !------------------------------------------------------------------------- + ! Parallel Particle Mesh Library (PPM) + ! Institute of Computational Science + ! ETH Zentrum, Hirschengraben 84 + ! CH-8092 Zurich, Switzerland + !------------------------------------------------------------------------- #define __SINGLE_PRECISION 1 @@ -29,30 +29,29 @@ #define __SFIELD 9 #define __VFIELD 10 -MODULE ppm_module_mg_init - !-------------------------------------------------------------------------- - !Modules - !----------------------------------------------------------------------------- - - - !----------------------------------------------------------------------------- - - INTERFACE ppm_mg_init - MODULE PROCEDURE ppm_mg_init_2d_sca_s - MODULE PROCEDURE ppm_mg_init_2d_sca_d - MODULE PROCEDURE ppm_mg_init_3d_sca_s - MODULE PROCEDURE ppm_mg_init_3d_sca_d - MODULE PROCEDURE ppm_mg_init_2d_vec_s - MODULE PROCEDURE ppm_mg_init_2d_vec_d - MODULE PROCEDURE ppm_mg_init_3d_vec_s - MODULE PROCEDURE ppm_mg_init_3d_vec_d - END INTERFACE - - !----------------------------------------------------------------------------- - ! INCLUDE THE SOURCES - !----------------------------------------------------------------------------- - -CONTAINS + MODULE ppm_module_mg_init + !----------------------------------------------------------------- + !Modules + !----------------------------------------------------------------- + + !----------------------------------------------------------------- + + INTERFACE ppm_mg_init + MODULE PROCEDURE ppm_mg_init_2d_sca_s + MODULE PROCEDURE ppm_mg_init_2d_sca_d + MODULE PROCEDURE ppm_mg_init_3d_sca_s + MODULE PROCEDURE ppm_mg_init_3d_sca_d + MODULE PROCEDURE ppm_mg_init_2d_vec_s + MODULE PROCEDURE ppm_mg_init_2d_vec_d + MODULE PROCEDURE ppm_mg_init_3d_vec_s + MODULE PROCEDURE ppm_mg_init_3d_vec_d + END INTERFACE + + !----------------------------------------------------------------- + ! INCLUDE THE SOURCES + !----------------------------------------------------------------- + + CONTAINS #define __DIM __SFIELD #define __MESH_DIM __2D #define __KIND __SINGLE_PRECISION @@ -98,6 +97,6 @@ CONTAINS #undef __DIM -END MODULE ppm_module_mg_init + END MODULE ppm_module_mg_init -- GitLab