Merges fields to be sent to a component. ``Merging'' means combining one or more fields to create a new field. Typically this is two or more fields of the same type, e.g. combining atm/ice, atm/lnd, and atm/ocn sensible heat flux fields, weighted by surface fraction, to create an atm/surface heat flux. But it could also involve somewhat differing fields, e.g. precipitation plus snow melt. Merging is normally not an automatic process, some hand-tuning is generally necessary to achieve the results necessary for valid science.
REVISION HISTORY:
2002-Sep-27 - B. Kauffman - created initial versionINTERFACE:
module merge_modUSES:
use cpl_kind_mod ! kinds
use cpl_control_mod ! control flags
use cpl_bundle_mod ! bundle data type and methods
use frac_mod ! surface fractions
use data_mod ! lengthly data declarations/inits for main program
use shr_sys_mod ! wrappers to system calls
use shr_timer_mod ! timing utilities
implicit none
private ! except
PUBLIC TYPES:
! none
PUBLIC MEMBER FUNCTIONS:
public :: merge_atm ! merges atm input data
public :: merge_ocn ! merges ocn input data
PUBLIC DATA MEMBERS:
! none
Merge bundles from multiple sources to form the atm input bundle in con_Xc2a%bundle.
First a cpl_bundle_gather is done to copy fields with the same name into con_Xc2a%bundle. Then the field-specific merges are performed.
REMARKS:
The SST, field "So_t", is copied from input argument fix_So2c_a
to avoid sub-freezing values introduced by mapping.
REVISION HISTORY:
2002-Jun-09 - B. Kauffman - initial version.INTERFACE:
subroutine merge_atm(fix_So2c_a)
implicit none
INPUT/OUTPUT PARAMETERS:
type(cpl_bundle),intent(in) :: fix_So2c_a ! KLUDGE: use alt bun_So2a_a, temp fix
Merge bundles from multiple sources to form the ``snapshot'' ocn input bundle bun_Xc2oSNAP_o. This ``snapshot'' will be added to the running sum which will be averaged when time to communicate with the ocean.
First a cpl_bundle_gather is done then the field-specific merges are performed.
REMARKS:
REVISION HISTORY:
2002-Jun-06 - B. Kauffman - initial version.INTERFACE:
subroutine merge_ocn()
implicit none
INPUT/OUTPUT PARAMETERS:
! none. uses module data in data_mod