Skip to content
Open
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
27 changes: 17 additions & 10 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: CI

on: [push, pull_request]
on: [push, pull_request, workflow_dispatch]

jobs:
build:
Expand All @@ -11,13 +11,20 @@ jobs:
run: sudo apt-get install -y --no-install-recommends gfortran libhdf5-openmpi-dev libopenmpi-dev
- name: Install ED2
run: |
cd ED/build
./install.sh -g -p travisci -k A
pushd ED/build/shell
bash build_objects.sh
popd
aclocal
automake --add-missing
autoconf
./configure
make
sudo make install
- name: Upload compiled ED2 binary
uses: actions/upload-artifact@v1
with:
name: ed2-binary
path: ED/build/ed_2.2-dbg
path: ed2

test-umbs-bg:
needs: build
Expand All @@ -33,8 +40,8 @@ jobs:
- name: Run ED2
working-directory: ./EDTS/
run: |
chmod +x "$GITHUB_WORKSPACE"/ed2-binary/ed_2.2-dbg
./run-test.sh umbs.bg "$GITHUB_WORKSPACE/ed2-binary/ed_2.2-dbg"
chmod +x "$GITHUB_WORKSPACE"/ed2-binary/ed2
./run-test.sh umbs.bg "$GITHUB_WORKSPACE/ed2-binary/ed2"

test-tonzi:
needs: build
Expand All @@ -50,8 +57,8 @@ jobs:
- name: Run ED2
working-directory: ./EDTS/
run: |
chmod +x "$GITHUB_WORKSPACE"/ed2-binary/ed_2.2-dbg
./run-test.sh tonzi "$GITHUB_WORKSPACE/ed2-binary/ed_2.2-dbg"
chmod +x "$GITHUB_WORKSPACE"/ed2-binary/ed2
./run-test.sh tonzi "$GITHUB_WORKSPACE/ed2-binary/ed2"

test-tonzi-harvest:
needs: build
Expand All @@ -67,5 +74,5 @@ jobs:
- name: Run ED2
working-directory: ./EDTS/
run: |
chmod +x "$GITHUB_WORKSPACE"/ed2-binary/ed_2.2-dbg
./run-test.sh tonzi.harvest "$GITHUB_WORKSPACE/ed2-binary/ed_2.2-dbg"
chmod +x "$GITHUB_WORKSPACE"/ed2-binary/ed2
./run-test.sh tonzi.harvest "$GITHUB_WORKSPACE/ed2-binary/ed2"
31 changes: 31 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -166,3 +166,34 @@ R-utils/read.q.quick.r
#Xiangtao Ignores
ED/build/ed2_gfortran
ED/build/ed2_ifort


# http://www.gnu.org/software/automake
Makefile.in
/ar-lib
/mdate-sh
/py-compile
/test-driver
/ylwrap
.deps/
.dirstamp

# http://www.gnu.org/software/autoconf
autom4te.cache
/autoscan.log
/autoscan-*.log
/aclocal.m4
/compile
/config.cache
/config.guess
/config.h.in
/config.log
/config.status
/config.sub
/configure
/configure.scan
/depcomp
/install-sh
/missing
/stamp-h1
/Makefile
Empty file added AUTHORS
Empty file.
Empty file added COPYING
Empty file.
Empty file added ChangeLog
Empty file.
36 changes: 36 additions & 0 deletions ED/build/shell/build_objects.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/bin/bash

# Add your build commands here
SOURCES=$( (cd ../../.. && find ED/src -name "*.[Ff]90" -and -not -path "ED/src/preproc/*"))

# Remove ED/src/driver/edmain.F90 from OBJECTS
SOURCES=$(echo $SOURCES | sed 's/ED\/src\/driver\/edmain.F90//')

echo SOURCES = $SOURCES ED/src/utils/utils_c.c > sources.mk

rm -f dependency.mk

# Build dependency rules for object files
for src in $SOURCES; do
# Mod depends on the source file building
SRC_MOD_NAME=$(echo $(basename "${src%.[Ff]90}.mod"))
echo $SRC_MOD_NAME: ${src%.[Ff]90}.o >> dependency.mk

# Find modules used in the source file and add as dependency for the object file
MODS_USED=$(cd ../../.. && grep -i '^\s*use\s\+' $src | awk '{print $2}' | sed 's/,.*//' | sort | uniq)

# Update MODS_USED to include only modules that has a corresponding
# source file with the pattern ED/src/*/$mod.[Ff]90
MODS_USED=$(for mod in $MODS_USED; do
if [ -f ../../../ED/src/*/$mod.F90 -o -f ../../../ED/src/*/$mod.f90 ]; then
echo $mod
fi
done)

MODS_USED_MOD=$(for line in $MODS_USED; do echo -n "$line.mod "; done)

length=$(echo $MODS_USED_MOD | wc -w)
if [ $length -gt 0 ]; then
echo ${src%.[Ff]90}.o: $MODS_USED_MOD >> dependency.mk
fi;
done
208 changes: 208 additions & 0 deletions ED/build/shell/dependency.mk

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions ED/build/shell/sources.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SOURCES = ED/src/driver/ed_1st.F90 ED/src/driver/ed_driver.F90 ED/src/driver/ed_met_driver.f90 ED/src/driver/ed_model.F90 ED/src/dynamics/bdf2_solver.f90 ED/src/dynamics/canopy_struct_dynamics.f90 ED/src/dynamics/disturbance.f90 ED/src/dynamics/euler_driver.f90 ED/src/dynamics/events.f90 ED/src/dynamics/farq_katul.f90 ED/src/dynamics/farq_leuning.f90 ED/src/dynamics/fire.f90 ED/src/dynamics/forestry.f90 ED/src/dynamics/growth_balive.f90 ED/src/dynamics/heun_driver.f90 ED/src/dynamics/hybrid_driver.f90 ED/src/dynamics/lsm_hyd.f90 ED/src/dynamics/mortality.f90 ED/src/dynamics/multiple_scatter.f90 ED/src/dynamics/old_twostream_rad.f90 ED/src/dynamics/phenology_aux.f90 ED/src/dynamics/phenology_driv.f90 ED/src/dynamics/photosyn_driv.f90 ED/src/dynamics/plant_hydro.f90 ED/src/dynamics/radiate_driver.f90 ED/src/dynamics/reproduction.f90 ED/src/dynamics/rk4_copy_patch.f90 ED/src/dynamics/rk4_derivs.f90 ED/src/dynamics/rk4_driver.F90 ED/src/dynamics/rk4_integ_utils.f90 ED/src/dynamics/rk4_misc.f90 ED/src/dynamics/soil_respiration.f90 ED/src/dynamics/stem_resp_driv.f90 ED/src/dynamics/structural_growth.f90 ED/src/dynamics/twostream_rad.f90 ED/src/dynamics/vegetation_dynamics.f90 ED/src/init/ed_bigleaf_init.f90 ED/src/init/ed_init.F90 ED/src/init/ed_init_atm.F90 ED/src/init/ed_nbg_init.f90 ED/src/init/ed_params.f90 ED/src/init/ed_type_init.f90 ED/src/init/landuse_init.f90 ED/src/init/phenology_startup.f90 ED/src/io/average_utils.f90 ED/src/io/edio.f90 ED/src/io/ed_init_history.f90 ED/src/io/ed_load_namelist.f90 ED/src/io/ed_opspec.F90 ED/src/io/ed_print.F90 ED/src/io/ed_read_ed10_20_history.f90 ED/src/io/ed_read_ed21_history.f90 ED/src/io/ed_xml_config.f90 ED/src/io/h5_output.F90 ED/src/io/leaf_database.f90 ED/src/memory/c34constants.f90 ED/src/memory/canopy_air_coms.f90 ED/src/memory/canopy_layer_coms.f90 ED/src/memory/canopy_radiation_coms.f90 ED/src/memory/consts_coms.F90 ED/src/memory/decomp_coms.f90 ED/src/memory/detailed_coms.f90 ED/src/memory/disturb_coms.f90 ED/src/memory/ed_max_dims.F90 ED/src/memory/ed_mem_alloc.f90 ED/src/memory/ed_misc_coms.f90 ED/src/memory/ed_state_vars.F90 ED/src/memory/ed_var_tables.f90 ED/src/memory/ed_work_vars.f90 ED/src/memory/ename_coms.f90 ED/src/memory/fusion_fission_coms.f90 ED/src/memory/grid_coms.f90 ED/src/memory/hdf5_coms.f90 ED/src/memory/hydrology_coms.f90 ED/src/memory/hydrology_constants.f90 ED/src/memory/mem_polygons.f90 ED/src/memory/met_driver_coms.f90 ED/src/memory/pft_coms.f90 ED/src/memory/phenology_coms.f90 ED/src/memory/physiology_coms.f90 ED/src/memory/rk4_coms.f90 ED/src/memory/soil_coms.F90 ED/src/mpi/ed_mpass_init.F90 ED/src/mpi/ed_node_coms.f90 ED/src/mpi/ed_para_coms.f90 ED/src/mpi/ed_para_init.f90 ED/src/utils/allometry.f90 ED/src/utils/budget_utils.f90 ED/src/utils/charutils.f90 ED/src/utils/dateutils.f90 ED/src/utils/ed_cn_utils.f90 ED/src/utils/ed_filelist.F90 ED/src/utils/ed_grid.f90 ED/src/utils/ed_therm_lib.f90 ED/src/utils/fatal_error.F90 ED/src/utils/fuse_fiss_utils.f90 ED/src/utils/great_circle.f90 ED/src/utils/hdf5_utils.f90 ED/src/utils/hrzshade_utils.f90 ED/src/utils/invmondays.f90 ED/src/utils/lapse.f90 ED/src/utils/libxml2f90.f90_pp.f90 ED/src/utils/numutils.f90 ED/src/utils/radiate_utils.f90 ED/src/utils/random_utils.F90 ED/src/utils/rsys.F90 ED/src/utils/stable_cohorts.f90 ED/src/utils/therm_lib.f90 ED/src/utils/therm_lib8.f90 ED/src/utils/update_derived_utils.f90 ED/src/utils/utils_f.f90 ED/src/utils/utils_c.c
10 changes: 6 additions & 4 deletions ED/src/driver/ed_1st.F90
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ subroutine ed_1st_master (ipara, nnodestotal,nslaves, headnode_num, max_threads,
use ed_state_vars, only : allocate_edglobals & ! subroutine
, filltab_alltypes ! ! subroutine

#if defined(RAMS_MPI)
use mpi
#endif
implicit none

!----- Pre-compiled variables from MPI. ------------------------------------------------!
#if defined(RAMS_MPI)
include 'mpif.h'
#endif
!----- Arguments. ----------------------------------------------------------------------!
integer , intent(in) :: ipara ! 0 if sequential run; 1 if parallel run
integer , intent(in) :: nnodestotal ! total number of nodes on any run
Expand Down Expand Up @@ -176,10 +176,12 @@ end subroutine ed_1st_master
!------------------------------------------------------------------------------------------!
subroutine ed_1st_node()
use ed_mem_alloc, only : ed_memory_allocation ! ! subroutine
#if defined(RAMS_MPI)
use mpi
#endif
implicit none
!----- Pre-compiled variables from MPI. ------------------------------------------------!
#if defined(RAMS_MPI)
include 'mpif.h'
!----- Local variable (MPI only). ------------------------------------------------------!
integer :: ierr
#endif
Expand Down
7 changes: 4 additions & 3 deletions ED/src/driver/ed_driver.F90
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,12 @@ subroutine ed_driver()
use hrzshade_utils , only : init_cci_variables ! ! subroutine
use canopy_radiation_coms, only : ihrzrad ! ! intent(in)
use random_utils , only : init_random_seed ! ! subroutine
implicit none
!----- Included variables. -------------------------------------------------------------!
#if defined(RAMS_MPI)
include 'mpif.h' ! MPI commons
use mpi ! MPI commons
#endif
implicit none

!----- Included variables. -------------------------------------------------------------!
!----- Local variables. ----------------------------------------------------------------!
character(len=12) :: c0
character(len=12) :: c1
Expand Down
5 changes: 2 additions & 3 deletions ED/src/driver/ed_model.F90
Original file line number Diff line number Diff line change
Expand Up @@ -94,11 +94,10 @@ subroutine ed_model()
use vegetation_dynamics , only : veg_dynamics_driver ! ! sub-routine
use ed_type_init , only : ed_init_viable ! ! sub-routine
use soil_respiration , only : zero_litter_inputs ! ! sub-routine
implicit none
!----- Common blocks. ------------------------------------------------------------------!
#if defined(RAMS_MPI)
include 'mpif.h'
use mpi
#endif
implicit none
!----- Local variables. ----------------------------------------------------------------!
type(simtime) :: daybefore
character(len=28) :: fmthead
Expand Down
10 changes: 5 additions & 5 deletions ED/src/driver/edmain.F90
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@
!------------------------------------------------------------------------------------------!
program main
!$ use omp_lib
implicit none
#if defined(RAMS_MPI)
use mpi
#endif
implicit none

!---------------------------------------------------------------------------------------!
! Local constants. !
Expand Down Expand Up @@ -49,10 +52,7 @@ program main
integer, dimension(64) :: thread_use
integer, dimension(64) :: cpu_use
integer, external :: findmycpu
!------ MPI interface. -----------------------------------------------------------------!
#if defined(RAMS_MPI)
include 'mpif.h'
#endif

!---------------------------------------------------------------------------------------!


Expand Down
Loading