make_coupler.m

#
# makefile for POLAIR's COUPLER code
#
#
# parameters passed in:
#
# C_COMPILER... c compiler
# CPP... c preprocessor passed into fortran 90
# DEBUGER... debug options
# F_COMPILER... fortran 90 compiler
# LINKER... linker options
# OPEN_MP... openmp options
# OPTIMIZER... optimizer options
# PROFILER... profiler options
#
# note: (1) libraries of other models are built elsewhere
# (2) all compiling performed in scratch directory
#
#
# list, SOURCES objects for COUPLER routines
#
COUPLER_SOURCES_OBJECTS = \
\
./c_boundary.o \
./c_coriolis.o \
./c_cpu_usage.o \
./c_message.o \
./c_dimensions_calculate.o \
./c_driver_polair.o \
./c_dynamic_allocate.o \
./c_euler_rotation.o \
./c_external_functions.o \
./c_fill_undef_2d.o \
./c_fill_undef_2d_laplace.o \
./c_fill_undef_3d.o \
./c_fill_poles.o \
./c_get_direct.o \
./c_grads_control.o \
./c_grads_control_header.o \
./c_grads_control_interval.o \
./c_grads_control_time_series.o \
./c_grads_disk_storage.o \
./c_grads_forcing.o \
./c_grads_put.o \
./c_grads_results.o \
./c_grads_time_series.o \
./c_increment_time_series.o \
./c_indicies_weights.o \
./c_init.o \
./c_interp.o \
./c_interp_1d.o \
./c_interp_2d.o \
./c_interp_3d.o \
./c_interp_4d.o \
./c_interp_weights.o \
./c_iofiles.o \
./c_iofiles_grads.o \
./c_julian_day.o \
./c_leap_year.o \
./c_legal.o \
./c_legal_context.o \
./c_legal_other.o \
./c_make_xy.o \
./c_millennium.o \
./c_model_time.o \
./c_namelist.o \
./c_notify.o \
./c_orography.o \
./c_orography_bogus.o \
./c_orography_etopo5.o \
./c_orography_ibcao.o \
./c_orography_masks.o \
./c_orography_scripps.o \
./c_orography_tune.o \
./c_put_direct.o \
./c_restart_control.o \
./c_restart_get.o \
./c_restart_put.o \
./c_rotate_domain.o \
./c_seed_random.o \
./c_shift.o \
./c_smoothing.o \
./c_stop.o \
./c_vis5d_orography.o
# c_vis5d_binio.o \
# c_grads_time.o \
# c_odb_clang.o \
# c_odb_flang.o \
#
# list, MODULES objects for COUPLER routines
# (important to specify non-inclusive order,
# achive this by breaking into pieces A,B,C)
#
COUPLER_MODULES_OBJECTS_A = \
\
./c_module_selected_kinds.o
COUPLER_MODULES_OBJECTS_B = \
\
./c_module_dimensions.o \
./c_module_mach_consts.o \
./c_module_phys_consts.o \
./c_module_switches.o
COUPLER_MODULES_OBJECTS_C = \
\
./c_module_byte.o \
./c_module_checker_board.o \
./c_module_coordinates.o \
./c_module_euler_rotation.o \
./c_module_experiment.o \
./c_module_grads.o \
./c_module_grid.o \
./c_module_lateral_stess.o \
./c_module_legal_setup.o \
./c_module_model_time.o \
./c_module_orography.o \
./c_module_parallel.o \
./c_module_restart.o \
./c_module_time_series.o \
./c_module_wall_time.o \
./c_module_walls_relax.o
# c_module_grid_utility.o \
#
# list, INCLUDES for COUPLER routines
#
COUPLER_INCLUDES = ./c_include.h \
./c_include_nofnxs.h \
./c_include_trailer.h \
./c_interface.h
#
# target, for entire polair system
# (exact name dependent on particular expt and id number)
#
${EXECUTABLE} : ${POLAIR_LIB_MODULES} \
${POLAIR_LIB_SOURCES} \
./c_driver_polair.o
/bin/rm -f ${EXECUTABLE}
${LINKER} -o ${EXECUTABLE} \
${OPEN_MP} \
${OPTIMIZER} \
${PROFILER} \
${DEBUGER} \
./c_driver_polair.o \
${POLAIR_LIB} \
${MPI_LIB} \
${NETCDF_LIB}
#
# target, for SOURCES library of COUPLER
#
lib_c_sources.a : ./lib_c_modules.a \
${COUPLER_SOURCES_OBJECTS}
/bin/rm -f ./lib_c_sources.a
${ARCHIVE} -r ./lib_c_sources.a ./c_*.o
${ARCHIVE} -d ./lib_c_sources.a ./c_driver_polair.o
#
# target, for MODULES library of COUPLER
#
lib_c_modules.a : ${COUPLER_MODULES_OBJECTS_A} \
${WAIT_DMAKE} \
${COUPLER_MODULES_OBJECTS_B} \
${WAIT_DMAKE} \
${COUPLER_MODULES_OBJECTS_C}
/bin/rm -f ./lib_c_modules.a
${ARCHIVE} -r ./lib_c_modules.a c_module_*.o
${ARCHIVE} -r ./lib_c_modules.a ${C_MODULE_CASE}*.${MODULE_EXT}
#
# dependency, for SOURCES objects (and driver)
#
${COUPLER_SOURCES_OBJECTS} : ./lib_c_modules.a \
${COUPLER_INCLUDES}
#
# dependency, for MODULES objects (is null)
#
${COUPLER_MODULES_OBJECTS_A} :
${COUPLER_MODULES_OBJECTS_B} :
${COUPLER_MODULES_OBJECTS_C} :
#
# dependency, .WAIT is null rule
# (for backward compatability of dmake to make)
#
.WAIT:
#
# dependency, for INCLUDE files
# (includes have no dependencies)
#
${COUPLER_INCLUDES}:
#
# generic rule, for compiling
#
.f.o:
${F_COMPILER} ${OPEN_MP} \
${OPTIMIZER} \
${LISTING} \
${DEBUGER} \
${CPP} \
./$*.f
#
# specific rule, for compiling (e.g. no optimizing)
#
c_grads_control.o:
${F_COMPILER} ${NOT_OPTIMIZER} \
${LISTING} \
${DEBUGER} \
${CPP} \
./c_grads_control.f
c_grads_control_header.o:
${F_COMPILER} ${NOT_OPTIMIZER} \
${LISTING} \
${DEBUGER} \
${CPP} \
./c_grads_control_header.f
c_grads_forcing.o:
${F_COMPILER} ${NOT_OPTIMIZER} \
${LISTING} \
${DEBUGER} \
${CPP} \
./c_grads_forcing.f
c_grads_results.o:
${F_COMPILER} ${NOT_OPTIMIZER} \
${LISTING} \
${DEBUGER} \
${CPP} \
./c_grads_results.f
c_interp.o:
${F_COMPILER} ${NOT_OPTIMIZER} \
${LISTING} \
${DEBUGER} \
${CPP} \
./c_interp.f
c_restart_get.o:
${F_COMPILER} ${NOT_OPTIMIZER} \
${LISTING} \
${DEBUGER} \
${CPP} \
./c_restart_get.f
c_restart_put.o:
${F_COMPILER} ${NOT_OPTIMIZER} \
${LISTING} \
${DEBUGER} \
${CPP} \
./c_restart_put.f
c_seed_random.o:
${F_COMPILER} ${NOT_OPTIMIZER} \
${LISTING} \
${DEBUGER} \
${CPP} \
./c_seed_random.f
#
# specific rule, for compiling (senya's odb interface)
#
c_odb_clang.o:
${C_COMPILER} ./c_odb_clang.c
c_odb_flang.o:
${F_COMPILER} ./c_odb_flang.f
#
# target, compile cleanup the lot of source code
# (using a recursive delete ... caution)
#
#delete_sources:
#cd ${POLAIR_CODE_LOCAL}
#/bin/rm -r ${POLAIR_CODE_LOCAL}
#echo 'LISTING OF CODE DIRECTORY ...'
#ls -al ${POLAIR_CODE_LOCAL}
#
# target, compile cleanup the lot of binaries
# (never use a recursive delete)
#
delete_binaries:
cd ${DATA_BIN_LOCAL}
/bin/rm ${DATA_BIN_LOCAL}/*.e
/bin/rm ${DATA_BIN_LOCAL}/*.a
/bin/rm ${DATA_BIN_LOCAL}/*.{mod,kmo}
/bin/rm ${DATA_BIN_LOCAL}/a_*.o
/bin/rm ${DATA_BIN_LOCAL}/a_*.{l,L}
/bin/rm ${DATA_BIN_LOCAL}/c_*.o
/bin/rm ${DATA_BIN_LOCAL}/c_*.{l,L}
/bin/rm ${DATA_BIN_LOCAL}/d_*.o
/bin/rm ${DATA_BIN_LOCAL}/d_*.{l,L}
/bin/rm ${DATA_BIN_LOCAL}/g_*.o
/bin/rm ${DATA_BIN_LOCAL}/g_*.{l,L}
/bin/rm ${DATA_BIN_LOCAL}/i_*.o
/bin/rm ${DATA_BIN_LOCAL}/i_*.{l,L}
/bin/rm ${DATA_BIN_LOCAL}/l_*.o
/bin/rm ${DATA_BIN_LOCAL}/l_*.{l,L}
/bin/rm ${DATA_BIN_LOCAL}/m_*.o
/bin/rm ${DATA_BIN_LOCAL}/m_*.{l,L}
/bin/rm ${DATA_BIN_LOCAL}/o_*.o
/bin/rm ${DATA_BIN_LOCAL}/o_*.{l,L}
/bin/rm ${DATA_BIN_LOCAL}/x_*.o
/bin/rm ${DATA_BIN_LOCAL}/x_*.{l,L}
/bin/rm ${DATA_BIN_LOCAL}/*
echo 'LISTING OF BIN DIRECTORY ...'
ls -al ${DATA_BIN_LOCAL}
#
# eof: makefile POLAIR's COUPLER code
#
|
. © David Holland. All Rights Reserved. |
|
If you would like further information concerning any of the above topics please send email . |