Skip to content

Commit

Permalink
Showing 8 changed files with 60 additions and 16 deletions.
2 changes: 2 additions & 0 deletions GNUmakefile.in
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@

USE_AMREX_FI_MAIN = FALSE

AMREX_HOME := $(shell pwd)

include $(AMREX_HOME)/Tools/GNUMake/Make.defs
10 changes: 9 additions & 1 deletion Src/Base/AMReX_ParallelDescriptor.cpp
Original file line number Diff line number Diff line change
@@ -43,6 +43,11 @@ extern "C" {
#include <omp.h>
#endif

namespace
{
static int call_mpi_finalize = 0;
}

namespace amrex {

namespace ParallelDescriptor
@@ -288,6 +293,7 @@ ParallelDescriptor::StartParallel (int* argc,

if ( ! sflag) {
BL_MPI_REQUIRE( MPI_Init(argc, argv) );
call_mpi_finalize = 1;
}

BL_MPI_REQUIRE( MPI_Comm_dup(mpi_comm, &m_comm_all) );
@@ -343,7 +349,9 @@ ParallelDescriptor::EndParallel ()
}
#endif

BL_MPI_REQUIRE( MPI_Finalize() );
if (call_mpi_finalize) {
BL_MPI_REQUIRE( MPI_Finalize() );
}
}

/* Given `rk_clrd', i.e. the rank in the colored `comm', return the
11 changes: 2 additions & 9 deletions Src/F_Interfaces/Base/AMReX_base_mod.F90
Original file line number Diff line number Diff line change
@@ -3,6 +3,8 @@ module amrex_base_module

use iso_c_binding

use amrex_init_module

use amrex_error_module
use amrex_fort_module
use amrex_box_module
@@ -25,13 +27,4 @@ module amrex_base_module

use mempool_module

contains

subroutine amrex_fi_init () bind(c)
end subroutine amrex_fi_init


subroutine amrex_fi_finalize () bind(c)
end subroutine amrex_fi_finalize

end module amrex_base_module
6 changes: 0 additions & 6 deletions Src/F_Interfaces/Base/AMReX_fi_main.cpp
Original file line number Diff line number Diff line change
@@ -3,24 +3,18 @@
#include <AMReX_BLProfiler.H>

extern "C" {
void amrex_fi_init();
void amrex_fi_finalize();
void amrex_fmain();
}

int main (int argc, char* argv[])
{
amrex::Initialize(argc,argv);

amrex_fi_init();

BL_PROFILE_VAR("main()", pmain);

amrex_fmain();

BL_PROFILE_VAR_STOP(pmain);

amrex_fi_finalize();

amrex::Finalize();
}
3 changes: 3 additions & 0 deletions Src/F_Interfaces/Base/Make.package
Original file line number Diff line number Diff line change
@@ -6,12 +6,15 @@ ifeq ($(USE_AMREX_FI_MAIN),TRUE)
CEXE_sources += AMReX_fi_main.cpp
endif

F90EXE_sources += AMReX_init_mod.F90

F90EXE_sources += AMReX_parallel_mod.F90

F90EXE_sources += AMReX_base_mod.F90 AMReX_box_mod.F90 AMReX_boxarray_mod.F90 AMReX_distromap_mod.F90
F90EXE_sources += AMReX_geometry_mod.F90 AMReX_multifab_mod.F90 AMReX_plotfile_mod.F90
F90EXE_sources += AMReX_multifabutil_mod.F90 AMReX_physbc_mod.F90 AMReX_fab_mod.F90

CEXE_sources += AMReX_init_fi.cpp
CEXE_sources += AMReX_box_fi.cpp AMReX_boxarray_fi.cpp AMReX_distromap_fi.cpp AMReX_geometry_fi.cpp
CEXE_sources += AMReX_multifab_fi.cpp AMReX_vismf_fi.cpp AMReX_plotfile_fi.cpp
CEXE_sources += AMReX_multifabutil_fi.cpp AMReX_physbc_fi.cpp
21 changes: 21 additions & 0 deletions Tutorials/Basic/main_F/GNUmakefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
AMREX_HOME ?= ../../../

DEBUG = FALSE
DEBUG = TRUE

DIM = 3

COMP = gnu

USE_MPI = TRUE
USE_OMP = FALSE

USE_AMREX_FI_MAIN = FALSE

include $(AMREX_HOME)/Tools/GNUMake/Make.defs

include ./Make.package
include $(AMREX_HOME)/Src/Base/Make.package
include $(AMREX_HOME)/Src/F_Interfaces/Base/Make.package

include $(AMREX_HOME)/Tools/GNUMake/Make.rules
1 change: 1 addition & 0 deletions Tutorials/Basic/main_F/Make.package
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
F90EXE_sources += main.F90
22 changes: 22 additions & 0 deletions Tutorials/Basic/main_F/main.F90
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

program main

use mpi
use amrex_base_module

implicit none

integer :: ierr

call mpi_init(ierr)

call amrex_init()




call amrex_finalize()

call mpi_finalize()

end program main

0 comments on commit 0b1bc2f

Please sign in to comment.