Set of routines that define communication between the
land model and flux coupler. The order of sends/receives is:
1) receive orbital data from coupler
2) send control data (grids and masks) to coupler
land grid does not have valid data, runoff grid does
3) receive valid land grid from flux coupler
4) send compressed runoff information to flux coupler
5) start normal send/recv communication patterm
USES:
use shr_kind_mod, only: r8 => shr_kind_r8 use nanMod use clm_varpar #if (defined SPMD) use spmdMod , only : masterproc, mpicom use spmdGathScatMod, only : gather_data_to_master #else use spmdMod , only : masterproc #endif use mpiinc use cpl_fields_mod use cpl_contract_mod use cpl_interface_mod use RunoffMod , only : runoff use shr_sys_mod , only : shr_sys_irtc, shr_sys_flush ! csm_share syste use system_messages , only : allocation_err ! allocation erro use abortutils , only : endrunPUBLIC TYPES:
implicit none savePUBLIC MEMBER FUNCTIONS:
public :: csm_setup ! Setup, mpi_init public :: csm_shutdown ! Shutdown, mpi_finalize public :: csm_initialize ! Initialize contracts, etc public :: csm_recvgrid ! Receive grid and land mask public :: csm_dosndrcv ! Logic for determining if send/recv public :: csm_recv ! Receive data from flux coupler public :: csm_send ! Send data to flux coupler public :: csm_sendalb ! Send initial albedos, surface temp and snow public :: csm_flxave ! Flux averaging rougine public :: restart_coupler ! Restart code public :: compat_check_spval ! Checks that data sent from the coupler is va public :: csm_compat ! Checks compatibility of messages send/receivREVISION HISTORY:
02.09.17 Mariana Vertenstein Updated to clm2_1 data structures
03.01.15 T. Craig Update for cpl6
03.04.27 M. Vertenstein, added qref_2m to communication and
generalized global sums to include all fields