Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions GFDL_tools/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# This is an automake file for the GFDL AM4 model.
# This builds directory ./GFDL_tools.
#
# Ed Hartnett 2019-09-10

# Build these uninstalled convenience libraries.
noinst_LTLIBRARIES = libread_climate_nudge_data.la libfv_cmip_diag.la \
libfv_climate_nudge.la libfv_ada_nudge.la

# Each convenience library depends on its source.
libread_climate_nudge_data_la_SOURCES = read_climate_nudge_data.F90
libfv_cmip_diag_la_SOURCES = fv_cmip_diag.F90
libfv_climate_nudge_la_SOURCES = fv_climate_nudge.F90
libfv_ada_nudge_la_SOURCES = fv_ada_nudge.F90

# Each mod file depends on the .o file.
read_climate_nudge_data_mod.mod: read_climate_nudge_data.$(OBJEXT)
fv_cmip_diag_mod.mod: fv_cmip_diag.$(OBJEXT)
fv_climate_nudge_mod.mod: fv_climate_nudge.$(OBJEXT)
fv_ada_nudge_mod.mod: fv_ada_nudge.$(OBJEXT)

# Some mods are dependant on other mods in this dir.
fv_climate_nudge.$(OBJEXT): read_climate_nudge_data_mod.mod

# Mod files are built and then installed as headers.
MODFILES = read_climate_nudge_data_mod.mod fv_cmip_diag_mod.mod \
fv_climate_nudge_mod.mod fv_ada_nudge_mod.mod
include_HEADERS = $(MODFILES)
BUILT_SOURCES = $(MODFILES)

EXTRA_DIST =

CLEANFILES = *.mod
11 changes: 11 additions & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# This is an automake file for the GFDL AM4 model.
# This builds directory ..
#
# Ed Hartnett 2019-09-10

# This directory stores libtool macros, put there by aclocal.
ACLOCAL_AMFLAGS = -I m4

# Run make targets in each of these subdirs
SUBDIRS = GFDL_tools model_nh tools driver model

78 changes: 78 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# This is the main configure file for the GFDL AM4
# package.
# Ed Hartnett 7/29/2019

AC_PREREQ([2.59])

# Initialize with name, version, and support email address.
AC_INIT([AM4], [2.0-development], [])

# Find out about the host we're building on.
AC_CANONICAL_HOST

# Find out about the target we're building for.
AC_CANONICAL_TARGET

AM_INIT_AUTOMAKE([foreign dist-zip subdir-objects])

# Keep libtool macros in an m4 directory.
AC_CONFIG_MACRO_DIR([m4])

# Set up libtool.
LT_PREREQ([2.4])
LT_INIT()

# Find the C compiler.
AC_PROG_CC
AM_PROG_CC_C_O
AC_C_CONST
AC_PROG_CPP

# Find the Fortran compiler.
AC_PROG_FC
AC_PROG_F77

# Find the install program.
AC_PROG_INSTALL

# Check to see if any macros must be set to enable large (>2GB) files.
AC_SYS_LARGEFILE

# Require MPI.
AC_CHECK_FUNC([MPI_Init], [], [AC_MSG_ERROR([MPI C library required])])

# Require FMS. But this does not work because fms_platform.h is
# actually a fortran file, and AC_SEARCH_LIBS does not work with
# fortran mod files. I will swing round to this again, until then
# include the FMS library in FCFLAGS, LDFLAGS and LIBS.
# AC_CHECK_HEADERS([fms_platform.h], [], [AC_MSG_ERROR([Can't find fms_platform.h.])])
# AC_SEARCH_LIBS([__mpp_mod_MOD_mpp_init], [FMS], [],
# [AC_MSG_ERROR([Can't find or link to the FMS Fortran library, set CPPFLAGS/LDFLAGS.])])


# Check for netCDF C library.
AC_SEARCH_LIBS([nc_create], [netcdf], [],
[AC_MSG_ERROR([Can't find or link to the netcdf C library, set CPPFLAGS/LDFLAGS.])])

# Check for netCDF Fortran library.
AC_LANG_PUSH(Fortran)
AC_SEARCH_LIBS([nf_create], [netcdff], [],
[AC_MSG_ERROR([Can't find or link to the netcdf Fortran library, set CPPFLAGS/LDFLAGS.])])
AC_LANG_POP(Fortran)

# These defines are required for the build.
#AC_DEFINE([use_netCDF], [1])
#AC_DEFINE([use_libMPI], [1])
#AC_DEFINE([SPMD], [1])

# These files will be created when the configure script is run.
AC_CONFIG_FILES([Makefile
GFDL_tools/Makefile
model_nh/Makefile
tools/Makefile
driver/Makefile
driver/GFDL/Makefile
driver/SHiELD/Makefile
model/Makefile
])
AC_OUTPUT()
24 changes: 24 additions & 0 deletions driver/GFDL/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# This is an automake file for the GFDL AM4 model.
# This builds directory ./driver/GFDL.
#
# Ed Hartnett 2019-09-10

# Build these uninstalled convenience libraries.
noinst_LTLIBRARIES = libatmosphere.la

# Each convenience library depends on its source.
libatmosphere_la_SOURCES = atmosphere.F90

# Each mod file depends on the .o file.
atmosphere_mod.mod: atmosphere.$(OBJEXT)

# Some mods are dependant on other mods in this dir.

# Mod files are built and then installed as headers.
MODFILES = atmosphere_mod.mod
include_HEADERS = $(MODFILES)
BUILT_SOURCES = $(MODFILES)

EXTRA_DIST =

CLEANFILES = *.mod
8 changes: 8 additions & 0 deletions driver/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# This is an automake file for the GFDL AM4 model.
# This builds directory ./driver.
#
# Ed Hartnett 2019-09-10

# Run make targets in each of these subdirs
SUBDIRS = GFDL SHiELD

30 changes: 30 additions & 0 deletions driver/SHiELD/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# This is an automake file for the GFDL AM4 model.
# This builds directory ./driver/SHiELD.
#
# Ed Hartnett 2019-09-10

# Build these uninstalled convenience libraries.
noinst_LTLIBRARIES = libatmosphere.la libconstants.la liblin_cloud_microphys.la

# Each convenience library depends on its source.
libatmosphere_la_SOURCES = atmosphere.F90
libconstants_la_SOURCES = constants.F90
liblin_cloud_microphys_la_SOURCES = lin_cloud_microphys.F90

# Each mod file depends on the .o file.
atmosphere_mod.mod: atmosphere.$(OBJEXT)
constants_mod.mod: constants.$(OBJEXT)
lin_cloud_microphys_mod.mod: lin_cloud_microphys.$(OBJEXT)

# Some mods are dependant on other mods in this dir.
atmosphere.$(OBJEXT): constants_mod.mod
lin_cloud_microphys.$(OBJEXT): constants_mod.mod

# Mod files are built and then installed as headers.
MODFILES = atmosphere_mod.mod constants_mod.mod lin_cloud_microphys_mod.mod
include_HEADERS = $(MODFILES)
BUILT_SOURCES = $(MODFILES)

EXTRA_DIST =

CLEANFILES = *.mod
78 changes: 78 additions & 0 deletions model/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# This is an automake file for the GFDL AM4 model.
# This builds directory ./model.
#
# Ed Hartnett 2019-09-10

# Build these uninstalled convenience libraries.
noinst_LTLIBRARIES = libtp_core.la libboundary.la libfv_current_grid.la libfv_arrays.la \
libfv_fill.la libfv_tracer2d.la libsw_core.la libfv_grid_utils.la \
libfv_mapz.la libfv_control.la libfv_nesting.la libdyn_core.la \
libfv_dynamics.la libfv_update_phys.la liba2b_edge.la libfv_sg.la \
libfv_cmp.la

# Each convenience library depends on its source.
libtp_core_la_SOURCES = tp_core.F90
libboundary_la_SOURCES = boundary.F90
libfv_current_grid_la_SOURCES = fv_current_grid.F90
libfv_arrays_la_SOURCES = fv_arrays.F90
libfv_fill_la_SOURCES = fv_fill.F90
libfv_tracer2d_la_SOURCES = fv_tracer2d.F90
libsw_core_la_SOURCES = sw_core.F90
libfv_grid_utils_la_SOURCES = fv_grid_utils.F90
libfv_mapz_la_SOURCES = fv_mapz.F90
libfv_control_la_SOURCES = fv_control.F90
libfv_nesting_la_SOURCES = fv_nesting.F90
libdyn_core_la_SOURCES = dyn_core.F90
libfv_dynamics_la_SOURCES = fv_dynamics.F90
libfv_update_phys_la_SOURCES = fv_update_phys.F90
liba2b_edge_la_SOURCES = a2b_edge.F90
libfv_sg_la_SOURCES = fv_sg.F90
libfv_cmp_la_SOURCES = fv_cmp.F90

# Each mod file depends on the .o file.
tp_core_mod.mod: tp_core.$(OBJEXT)
boundary_mod.mod: boundary.$(OBJEXT)
fv_current_grid_mod.mod: fv_current_grid.$(OBJEXT)
fv_arrays_mod.mod: fv_arrays.$(OBJEXT)
fv_fill_mod.mod: fv_fill.$(OBJEXT)
fv_tracer2d_mod.mod: fv_tracer2d.$(OBJEXT)
sw_core_mod.mod: sw_core.$(OBJEXT)
fv_grid_utils_mod.mod: fv_grid_utils.$(OBJEXT)
fv_mapz_mod.mod: fv_mapz.$(OBJEXT)
fv_control_mod.mod: fv_control.$(OBJEXT)
fv_nesting_mod.mod: fv_nesting.$(OBJEXT)
dyn_core_mod.mod: dyn_core.$(OBJEXT)
fv_dynamics_mod.mod: fv_dynamics.$(OBJEXT)
fv_update_phys_mod.mod: fv_update_phys.$(OBJEXT)
a2b_edge_mod.mod: a2b_edge.$(OBJEXT)
fv_sg_mod.mod: fv_sg.$(OBJEXT)
fv_cmp_mod.mod: fv_cmp.$(OBJEXT)

# Some mods are dependant on other mods in this dir.
tp_core.$(OBJEXT): fv_arrays_mod.mod fv_grid_utils_mod.mod
boundary.$(OBJEXT): fv_arrays_mod.mod
fv_current_grid.$(OBJEXT): fv_arrays_mod.mod
fv_tracer2d.$(OBJEXT): tp_core_mod.mod boundary_mod.mod fv_arrays_mod.mod
sw_core.$(OBJEXT): tp_core_mod.mod fv_arrays_mod.mod a2b_edge_mod.mod
fv_grid_utils.$(OBJEXT): fv_arrays_mod.mod
fv_mapz.$(OBJEXT): fv_arrays_mod.mod fv_fill_mod.mod fv_grid_utils_mod.mod fv_cmp_mod.mod
fv_control.$(OBJEXT): fv_arrays_mod.mod fv_grid_utils_mod.mod
fv_nesting.$(OBJEXT): boundary_mod.mod fv_arrays_mod.mod sw_core_mod.mod fv_grid_utils_mod.mod fv_mapz_mod.mod fv_sg_mod.mod
dyn_core.$(OBJEXT): tp_core_mod.mod boundary_mod.mod fv_arrays_mod.mod sw_core_mod.mod fv_update_phys_mod.mod a2b_edge_mod.mod
fv_dynamics.$(OBJEXT): boundary_mod.mod fv_arrays_mod.mod fv_fill_mod.mod fv_tracer2d_mod.mod fv_grid_utils_mod.mod fv_mapz_mod.mod fv_nesting_mod.mod dyn_core_mod.mod fv_sg_mod.mod
fv_update_phys.$(OBJEXT): boundary_mod.mod fv_arrays_mod.mod fv_grid_utils_mod.mod fv_mapz_mod.mod
a2b_edge.$(OBJEXT): fv_arrays_mod.mod fv_grid_utils_mod.mod
fv_cmp.$(OBJEXT): fv_arrays_mod.mod

# Mod files are built and then installed as headers.
MODFILES = tp_core_mod.mod boundary_mod.mod fv_current_grid_mod.mod \
fv_arrays_mod.mod fv_fill_mod.mod fv_tracer2d_mod.mod sw_core_mod.mod \
fv_grid_utils_mod.mod fv_mapz_mod.mod fv_control_mod.mod \
fv_nesting_mod.mod dyn_core_mod.mod fv_dynamics_mod.mod \
fv_update_phys_mod.mod a2b_edge_mod.mod fv_sg_mod.mod fv_cmp_mod.mod
include_HEADERS = $(MODFILES)
BUILT_SOURCES = $(MODFILES)

EXTRA_DIST =

CLEANFILES = *.mod
27 changes: 27 additions & 0 deletions model_nh/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# This is an automake file for the GFDL AM4 model.
# This builds directory ./model_nh.
#
# Ed Hartnett 2019-09-10

# Build these uninstalled convenience libraries.
noinst_LTLIBRARIES = libnh_utils.la libnh_core.la

# Each convenience library depends on its source.
libnh_utils_la_SOURCES = nh_utils.F90
libnh_core_la_SOURCES = nh_core.F90

# Each mod file depends on the .o file.
nh_utils_mod.mod: nh_utils.$(OBJEXT)
nh_core_mod.mod: nh_core.$(OBJEXT)

# Some mods are dependant on other mods in this dir.
nh_core.$(OBJEXT): nh_utils_mod.mod

# Mod files are built and then installed as headers.
MODFILES = nh_utils_mod.mod nh_core_mod.mod
include_HEADERS = $(MODFILES)
BUILT_SOURCES = $(MODFILES)

EXTRA_DIST =

CLEANFILES = *.mod
75 changes: 75 additions & 0 deletions tools/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# This is an automake file for the GFDL AM4 model.
# This builds directory ./tools.
#
# Ed Hartnett 2019-09-10

# Build these uninstalled convenience libraries.
noinst_LTLIBRARIES = libfv_surf_map.la libexternal_ic.la libfv_restart.la \
libfv_grid_tools.la libfv_eta.la libinit_hydro.la libsim_nc_mod.la \
libsorted_index.la libfv_mp_mod.la libexternal_sst.la libfv_timing.la \
libfv_diagnostics.la libfv_nudge.la libfv_nggps_diag.la libfv_io.la \
libtest_cases.la

# Each convenience library depends on its source.
libfv_surf_map_la_SOURCES = fv_surf_map.F90
libexternal_ic_la_SOURCES = external_ic.F90
libfv_restart_la_SOURCES = fv_restart.F90
libfv_grid_tools_la_SOURCES = fv_grid_tools.F90
libfv_eta_la_SOURCES = fv_eta.F90
libinit_hydro_la_SOURCES = init_hydro.F90
libsim_nc_mod_la_SOURCES = sim_nc_mod.F90
libsorted_index_la_SOURCES = sorted_index.F90
libfv_mp_mod_la_SOURCES = fv_mp_mod.F90
libexternal_sst_la_SOURCES = external_sst.F90
libfv_timing_la_SOURCES = fv_timing.F90
libfv_diagnostics_la_SOURCES = fv_diagnostics.F90
libfv_nudge_la_SOURCES = fv_nudge.F90
libfv_nggps_diag_la_SOURCES = fv_nggps_diag.F90
libfv_io_la_SOURCES = fv_io.F90
libtest_cases_la_SOURCES = test_cases.F90

# Each mod file depends on the .o file.
fv_surf_map_mod.mod: fv_surf_map.$(OBJEXT)
external_ic_mod.mod: external_ic.$(OBJEXT)
fv_restart_mod.mod: fv_restart.$(OBJEXT)
fv_grid_tools_mod.mod: fv_grid_tools.$(OBJEXT)
fv_eta_mod.mod: fv_eta.$(OBJEXT)
init_hydro_mod.mod: init_hydro.$(OBJEXT)
sim_nc_mod_mod.mod: sim_nc_mod.$(OBJEXT)
sorted_index_mod.mod: sorted_index.$(OBJEXT)
fv_mp_mod_mod.mod: fv_mp_mod.$(OBJEXT)
external_sst_mod.mod: external_sst.$(OBJEXT)
fv_timing_mod.mod: fv_timing.$(OBJEXT)
fv_diagnostics_mod.mod: fv_diagnostics.$(OBJEXT)
fv_nudge_mod.mod: fv_nudge.$(OBJEXT)
fv_nggps_diag_mod.mod: fv_nggps_diag.$(OBJEXT)
fv_io_mod.mod: fv_io.$(OBJEXT)
test_cases_mod.mod: test_cases.$(OBJEXT)

# Some mods are dependant on other mods in this dir.
fv_surf_map.$(OBJEXT): fv_mp_mod_mod.mod fv_timing_mod.mod
external_ic.$(OBJEXT): fv_surf_map_mod.mod fv_eta_mod.mod init_hydro_mod.mod sim_nc_mod_mod.mod fv_mp_mod_mod.mod external_sst_mod.mod fv_timing_mod.mod fv_diagnostics_mod.mod fv_io_mod.mod test_cases_mod.mod
fv_restart.$(OBJEXT): fv_surf_map_mod.mod external_ic_mod.mod fv_eta_mod.mod init_hydro_mod.mod fv_mp_mod_mod.mod fv_timing_mod.mod fv_diagnostics_mod.mod fv_io_mod.mod test_cases_mod.mod
fv_grid_tools.$(OBJEXT): sorted_index_mod.mod fv_mp_mod_mod.mod fv_timing_mod.mod
fv_eta.$(OBJEXT): fv_mp_mod_mod.mod
init_hydro.$(OBJEXT): fv_mp_mod_mod.mod fv_diagnostics_mod.mod
fv_timing.$(OBJEXT): fv_mp_mod_mod.mod
fv_diagnostics.$(OBJEXT): fv_surf_map_mod.mod fv_eta_mod.mod fv_mp_mod_mod.mod
fv_nudge.$(OBJEXT): sim_nc_mod_mod.mod fv_mp_mod_mod.mod external_sst_mod.mod fv_timing_mod.mod fv_diagnostics_mod.mod
fv_nggps_diag.$(OBJEXT): fv_diagnostics_mod.mod
fv_io.$(OBJEXT): fv_eta_mod.mod fv_mp_mod_mod.mod external_sst_mod.mod
test_cases.$(OBJEXT): fv_surf_map_mod.mod fv_grid_tools_mod.mod fv_eta_mod.mod init_hydro_mod.mod fv_mp_mod_mod.mod fv_diagnostics_mod.mod

# Mod files are built and then installed as headers.
MODFILES = fv_surf_map_mod.mod external_ic_mod.mod fv_restart_mod.mod \
fv_grid_tools_mod.mod fv_eta_mod.mod init_hydro_mod.mod \
sim_nc_mod_mod.mod sorted_index_mod.mod fv_mp_mod_mod.mod \
external_sst_mod.mod fv_timing_mod.mod fv_diagnostics_mod.mod \
fv_nudge_mod.mod fv_nggps_diag_mod.mod fv_io_mod.mod \
test_cases_mod.mod
include_HEADERS = $(MODFILES)
BUILT_SOURCES = $(MODFILES)

EXTRA_DIST =

CLEANFILES = *.mod