Skip to content

Commit

Permalink
EMI data exchange for alquimia
Browse files Browse the repository at this point in the history
  • Loading branch information
bsulman committed Jun 5, 2024
1 parent 981cf9e commit 25bf8a9
Show file tree
Hide file tree
Showing 47 changed files with 3,824 additions and 402 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@ set(EMI_CONSTANTS_SOURCES
EMI_CanopyStateType_Constants.F90
EMI_ChemStateType_Constants.F90
EMI_CNCarbonStateType_Constants.F90
EMI_CNNitrogenStateType_Constants.F90
EMI_CNCarbonFluxType_Constants.F90
EMI_ColumnType_Constants.F90
EMI_ColumnEnergyStateType_Constants.F90
EMI_EnergyFluxType_Constants.F90
EMI_Filter_Constants.F90
EMI_Landunit_Constants.F90
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
module EMI_CNCarbonFluxType_Constants
!
implicit none
private
!
integer, parameter, public :: L2E_FLUX_HETEROTROPHIC_RESP_POOLS_VERTICALLY_RESOLVED = 2501
integer, parameter, public :: L2E_FLUX_HETEROTROPHIC_RESP_VERTICALLY_RESOLVED = 2502
integer, parameter, public :: L2E_FLUX_SOIL_POOL_DECOMP_K = 2503

integer, parameter, public :: E2L_FLUX_HETEROTROPHIC_RESP_POOLS_VERTICALLY_RESOLVED = 2504
integer, parameter, public :: E2L_FLUX_HETEROTROPHIC_RESP_VERTICALLY_RESOLVED = 2505
integer, parameter, public :: E2L_FLUX_HETEROTROPHIC_RESP = 2506
integer, parameter, public :: E2L_FLUX_METHANE = 2507
integer, parameter, public :: E2L_FLUX_DIC_RUNOFF = 2508
integer, parameter, public :: E2L_FLUX_DOC_RUNOFF = 2509

end module EMI_CNCarbonFluxType_Constants
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,9 @@ module EMI_CNCarbonStateType_Constants
integer, parameter, public :: L2E_STATE_CARBON_POOLS_VERTICALLY_RESOLVED = 2001

integer, parameter, public :: E2L_STATE_CARBON_POOLS_VERTICALLY_RESOLVED = 2002
integer, parameter, public :: E2L_STATE_DOC_VERTICALLY_RESOLVED = 2003
integer, parameter, public :: E2L_STATE_DIC_VERTICALLY_RESOLVED = 2004
integer, parameter, public :: E2L_STATE_METHANE_VERTICALLY_RESOLVED = 2005
integer, parameter, public :: E2L_STATE_SOIL_CARBONATE = 2006

end module EMI_CNCarbonStateType_Constants
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
module EMI_CNNitrogenFluxType_Constants
!
implicit none
private
!
integer, parameter, public :: L2E_FLUX_NIMM_VERTICALLY_RESOLVED = 2201
integer, parameter, public :: L2E_FLUX_NIMP_VERTICALLY_RESOLVED = 2202
integer, parameter, public :: L2E_FLUX_NMIN_VERTICALLY_RESOLVED = 2203
integer, parameter, public :: L2E_FLUX_PLANT_NDEMAND_VERTICALLY_RESOLVED = 2204

integer, parameter, public :: E2L_FLUX_NIMM_VERTICALLY_RESOLVED = 2205
integer, parameter, public :: E2L_FLUX_NIMP_VERTICALLY_RESOLVED = 2206
integer, parameter, public :: E2L_FLUX_NMIN_VERTICALLY_RESOLVED = 2207
integer, parameter, public :: E2L_FLUX_SMINN_TO_PLANT_VERTICALLY_RESOLVED = 2208
integer, parameter, public :: E2L_FLUX_SMIN_NO3_TO_PLANT_VERTICALLY_RESOLVED = 2209
integer, parameter, public :: E2L_FLUX_SMIN_NH4_TO_PLANT_VERTICALLY_RESOLVED = 2210
integer, parameter, public :: E2L_FLUX_NO3_RUNOFF = 2211
integer, parameter, public :: E2L_FLUX_DON_RUNOFF = 2212
integer, parameter, public :: E2L_FLUX_N2O = 2213
integer, parameter, public :: E2L_FLUX_N2 = 2214

end module EMI_CNNitrogenFluxType_Constants
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
module EMI_CNNitrogenStateType_Constants
!
implicit none
private
!
integer, parameter, public :: L2E_STATE_NITROGEN_POOLS_VERTICALLY_RESOLVED = 2101
integer, parameter, public :: L2E_STATE_NH4_VERTICALLY_RESOLVED = 2102
integer, parameter, public :: L2E_STATE_NO3_VERTICALLY_RESOLVED = 2103

integer, parameter, public :: E2L_STATE_NITROGEN_POOLS_VERTICALLY_RESOLVED = 2104
integer, parameter, public :: E2L_STATE_NH4_VERTICALLY_RESOLVED = 2105
integer, parameter, public :: E2L_STATE_NO3_VERTICALLY_RESOLVED = 2106
integer, parameter, public :: E2L_STATE_DON_VERTICALLY_RESOLVED = 2107
integer, parameter, public :: E2L_STATE_N2O_VERTICALLY_RESOLVED = 2108
integer, parameter, public :: E2L_STATE_N2_VERTICALLY_RESOLVED = 2109

end module EMI_CNNitrogenStateType_Constants
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,37 @@ module EMI_ChemStateType_Constants
implicit none
private
!
integer, parameter, public :: L2E_STATE_SOIL_PH = 1801
integer, parameter, public :: L2E_STATE_SOIL_PH = 1801
integer, parameter, public :: L2E_STATE_WATER_DENSITY = 1802
integer, parameter, public :: L2E_STATE_AQUEOUS_PRESSURE = 1803
integer, parameter, public :: L2E_STATE_TOTAL_MOBILE = 1804
integer, parameter, public :: L2E_STATE_TOTAL_IMMOBILE = 1805
integer, parameter, public :: L2E_STATE_MINERAL_VOLUME_FRACTION = 1806
integer, parameter, public :: L2E_STATE_MINERAL_SPECIFIC_SURFACE_AREA = 1807
integer, parameter, public :: L2E_STATE_SURFACE_SITE_DENSITY = 1808
integer, parameter, public :: L2E_STATE_CATION_EXCHANGE_CAPACITY = 1809
integer, parameter, public :: L2E_STATE_AUX_DOUBLES = 1810
integer, parameter, public :: L2E_STATE_AUX_INTS = 1811

integer, parameter, public :: E2L_STATE_SOIL_PH = 1812
integer, parameter, public :: E2L_STATE_SOIL_SALINITY = 1813
integer, parameter, public :: E2L_STATE_SOIL_O2 = 1814
integer, parameter, public :: E2L_STATE_SOIL_SULFATE = 1815
integer, parameter, public :: E2L_STATE_SOIL_SULFIDE = 1816
integer, parameter, public :: E2L_STATE_SOIL_FE2 = 1817
integer, parameter, public :: E2L_STATE_SOIL_FE_OXIDE = 1818
integer, parameter, public :: E2L_STATE_SOIL_FE_SULFIDE = 1819
integer, parameter, public :: E2L_STATE_SOIL_ACETATE = 1820
integer, parameter, public :: E2L_STATE_WATER_DENSITY = 1821
integer, parameter, public :: E2L_STATE_AQUEOUS_PRESSURE = 1822
integer, parameter, public :: E2L_STATE_TOTAL_MOBILE = 1823
integer, parameter, public :: E2L_STATE_TOTAL_IMMOBILE = 1824
integer, parameter, public :: E2L_STATE_MINERAL_VOLUME_FRACTION = 1825
integer, parameter, public :: E2L_STATE_MINERAL_SPECIFIC_SURFACE_AREA = 1826
integer, parameter, public :: E2L_STATE_SURFACE_SITE_DENSITY = 1827
integer, parameter, public :: E2L_STATE_CATION_EXCHANGE_CAPACITY = 1828
integer, parameter, public :: E2L_STATE_AUX_DOUBLES = 1829
integer, parameter, public :: E2L_STATE_AUX_INTS = 1830
integer, parameter, public :: E2L_STATE_CHEM_DT = 1831

end module EMI_ChemStateType_Constants
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
module EMI_ColumnEnergyStateType_Constants
!
implicit none
private
!
integer, parameter, public :: L2E_STATE_TSOIL_NLEVGRND_COL = 0301
integer, parameter, public :: L2E_STATE_TSNOW_COL = 0302
integer, parameter, public :: L2E_STATE_TH2OSFC_COL = 0303
integer, parameter, public :: L2E_STATE_TSOI10CM_COL = 0304
integer, parameter, public :: L2E_STATE_TSOIL_NLEVSOI_COL = 0305

integer, parameter, public :: E2L_STATE_TSOIL_NLEVGRND_COL = 0306
integer, parameter, public :: E2L_STATE_TSNOW_NLEVSNOW_COL = 0307
integer, parameter, public :: E2L_STATE_TH2OSFC_COL = 0308

end module EMI_ColumnEnergyStateType_Constants
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
module EMI_ColumnWaterFluxType_Constants
!
implicit none
private
!
integer, parameter, public :: L2E_FLUX_SOIL_QFLX_ADV_COL = 0501
integer, parameter, public :: L2E_FLUX_SOIL_QFLX_DRAIN = 0502
integer, parameter, public :: L2E_FLUX_SOIL_QFLX_DRAIN_VR = 0503

end module EMI_ColumnWaterFluxType_Constants
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
module EMI_ColumnWaterStateType_Constants
!
implicit none
private
!
integer, parameter, public :: L2E_STATE_SOIL_LIQ_VOL_COL = 0401
integer, parameter, public :: L2E_STATE_SOIL_ICE_VOL_COL = 0402
integer, parameter, public :: L2E_STATE_H2OSFC_COL = 0403
integer, parameter, public :: L2E_STATE_SALINITY_COL = 0404
integer, parameter, public :: L2E_STATE_H2OSFC_TIDE_COL = 0405

end module EMI_ColumnWaterStateType_Constants
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,7 @@ module EMI_Filter_Constants
integer, parameter, public :: L2E_FILTER_NUM_NOLAKEC = 1204
integer, parameter, public :: L2E_FILTER_NOLAKEC_AND_NOURBANC = 1205
integer, parameter, public :: L2E_FILTER_NUM_NOLAKEC_AND_NOURBANC = 1206
integer, parameter, public :: L2E_FILTER_SOILC = 1207
integer, parameter, public :: L2E_FILTER_NUM_SOILC = 1208

end module EMI_Filter_Constants
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ set(EMI_EMI_DATA_DEFINITION_SOURCES
EMI_CanopyStateType_DataMod.F90
EMI_ChemStateType_DataMod.F90
EMI_CNCarbonStateType_DataMod.F90
EMI_CNNitrogenStateType_DataMod.F90
EMI_CNCarbonFluxType_DataMod.F90
EMI_ColumnEnergyStateType_DataMod.F90
EMI_EnergyFluxType_DataMod.F90
EMI_SoilHydrologyType_DataMod.F90
EMI_SoilStateType_DataMod.F90
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,21 +25,21 @@ subroutine EMI_Atm2LndType_DataInfoByID(data_id, id_val, name_val, long_name_val
! !ARGUMENTS:
integer , intent(in) :: data_id
integer , intent(out) :: id_val
character (len=*) , intent(out) :: name_val
character (len=32) , intent(out) :: name_val
character (len=128), intent(out) :: long_name_val
character (len=24) , intent(out) :: units_val
character (len=32) , intent(out) :: units_val
logical , intent(out) :: is_int_type
logical , intent(out) :: is_real_type
integer , intent(out) :: ndim
character (len=24) , intent(out) :: dim1_beg_name
character (len=24) , intent(out) :: dim1_end_name
character (len=24) , intent(out) :: dim2_beg_name
character (len=24) , intent(out) :: dim2_end_name
character (len=24) , intent(out) :: dim3_beg_name
character (len=24) , intent(out) :: dim3_end_name
character (len=24) , intent(out) :: dim4_beg_name
character (len=24) , intent(out) :: dim4_end_name
logical , intent(out) :: data_found
character (len=32) , intent(out) :: dim1_beg_name
character (len=32) , intent(out) :: dim1_end_name
character (len=32) , intent(out) :: dim2_beg_name
character (len=32) , intent(out) :: dim2_end_name
character (len=32) , intent(out) :: dim3_beg_name
character (len=32) , intent(out) :: dim3_end_name
character (len=32) , intent(out) :: dim4_beg_name
character (len=32) , intent(out) :: dim4_end_name
logical , intent(inout) :: data_found

is_int_type = .false.
is_real_type = .false.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
module EMI_CNCarbonFluxType_DataMod
!
use EMI_CNCarbonFluxType_Constants
!
implicit none
!
public :: EMI_CNCarbonFluxType_DataInfoByID

contains

!-----------------------------------------------------------------------
subroutine EMI_CNCarbonFluxType_DataInfoByID(data_id, id_val, name_val, long_name_val,&
units_val, is_int_type, is_real_type, ndim, &
dim1_beg_name, dim1_end_name, dim2_beg_name, dim2_end_name, &
dim3_beg_name, dim3_end_name, dim4_beg_name, dim4_end_name, &
data_found)
!
! !DESCRIPTION:
! Defines information of data exchanged between ELM and EM
!
! !USES:
use EMI_DataDimensionMod
implicit none
!
! !ARGUMENTS:
integer , intent(in) :: data_id
integer , intent(out) :: id_val
character (len=32) , intent(out) :: name_val
character (len=128), intent(out) :: long_name_val
character (len=32) , intent(out) :: units_val
logical , intent(out) :: is_int_type
logical , intent(out) :: is_real_type
integer , intent(out) :: ndim
character (len=32) , intent(out) :: dim1_beg_name
character (len=32) , intent(out) :: dim1_end_name
character (len=32) , intent(out) :: dim2_beg_name
character (len=32) , intent(out) :: dim2_end_name
character (len=32) , intent(out) :: dim3_beg_name
character (len=32) , intent(out) :: dim3_end_name
character (len=32) , intent(out) :: dim4_beg_name
character (len=32) , intent(out) :: dim4_end_name
logical , intent(inout) :: data_found

is_int_type = .false.
is_real_type = .false.
dim1_beg_name = ''
dim2_beg_name = ''
dim3_beg_name = ''
dim4_beg_name = ''
dim1_end_name = ''
dim2_end_name = ''
dim3_end_name = ''
dim4_end_name = ''

select case(data_id)

case(L2E_FLUX_HETEROTROPHIC_RESP_POOLS_VERTICALLY_RESOLVED)
id_val = L2E_FLUX_HETEROTROPHIC_RESP_POOLS_VERTICALLY_RESOLVED
name_val = 'decomp cascade hr vr'
long_name_val = 'decomp cascade hr vr: ELM to EM'
units_val = '[gC/m3/s]'
is_real_type = .true.
ndim = 3
dim1_beg_name = dimname_begc
dim1_end_name = dimname_endc
dim2_beg_name = dimname_one
dim2_end_name = dimname_nlevdecomp_full
dim3_beg_name = dimname_one
dim3_end_name = dimname_ndecomp_pools
data_found = .true.

case(L2E_FLUX_HETEROTROPHIC_RESP_VERTICALLY_RESOLVED)
id_val = L2E_FLUX_HETEROTROPHIC_RESP_VERTICALLY_RESOLVED
name_val = 'hr vr'
long_name_val = 'hr vr: ELM to EM'
units_val = '[gC/m3/s]'
is_real_type = .true.
ndim = 2
dim1_beg_name = dimname_begc
dim1_end_name = dimname_endc
dim2_beg_name = dimname_one
dim2_end_name = dimname_nlevdecomp_full
data_found = .true.

case(L2E_FLUX_SOIL_POOL_DECOMP_K)
id_val = L2E_FLUX_SOIL_POOL_DECOMP_K
name_val = 'decomp k constants'
long_name_val = 'decomp k constants: ELM to EM'
units_val = '[1/s]'
is_real_type = .true.
ndim = 3
dim1_beg_name = dimname_begc
dim1_end_name = dimname_endc
dim2_beg_name = dimname_one
dim2_end_name = dimname_nlevdecomp_full
dim3_beg_name = dimname_one
dim3_end_name = dimname_ndecomp_pools
data_found = .true.

case(E2L_FLUX_HETEROTROPHIC_RESP_POOLS_VERTICALLY_RESOLVED)
id_val = E2L_FLUX_HETEROTROPHIC_RESP_POOLS_VERTICALLY_RESOLVED
name_val = 'decomp cascade hr vr'
long_name_val = 'decomp cascade hr vr: EM to ELM'
units_val = '[gC/m3/s]'
is_real_type = .true.
ndim = 3
dim1_beg_name = dimname_begc
dim1_end_name = dimname_endc
dim2_beg_name = dimname_one
dim2_end_name = dimname_nlevdecomp_full
dim3_beg_name = dimname_one
dim3_end_name = dimname_ndecomp_pools
data_found = .true.

case(E2L_FLUX_HETEROTROPHIC_RESP_VERTICALLY_RESOLVED)
id_val = E2L_FLUX_HETEROTROPHIC_RESP_VERTICALLY_RESOLVED
name_val = 'hr vr'
long_name_val = 'hr vr: EM to ELM'
units_val = '[gC/m3/s]'
is_real_type = .true.
ndim = 2
dim1_beg_name = dimname_begc
dim1_end_name = dimname_endc
dim2_beg_name = dimname_one
dim2_end_name = dimname_nlevdecomp_full
data_found = .true.

case(E2L_FLUX_HETEROTROPHIC_RESP)
id_val = E2L_FLUX_HETEROTROPHIC_RESP
name_val = 'hr'
long_name_val = 'hr: EM to ELM'
units_val = '[gC/m2/s]'
is_real_type = .true.
ndim = 1
dim1_beg_name = dimname_begc
dim1_end_name = dimname_endc
data_found = .true.

case(E2L_FLUX_METHANE)
id_val = E2L_FLUX_METHANE
name_val = 'hr'
long_name_val = 'hr: EM to ELM'
units_val = '[gC/m2/s]'
is_real_type = .true.
ndim = 1
dim1_beg_name = dimname_begc
dim1_end_name = dimname_endc
data_found = .true.

case(E2L_FLUX_DIC_RUNOFF)
id_val = E2L_FLUX_DIC_RUNOFF
name_val = 'DIC_runoff'
long_name_val = 'DIC_runoff: EM to ELM'
units_val = '[gC/m2/s]'
is_real_type = .true.
ndim = 1
dim1_beg_name = dimname_begc
dim1_end_name = dimname_endc
data_found = .true.

case(E2L_FLUX_DOC_RUNOFF)
id_val = E2L_FLUX_DOC_RUNOFF
name_val = 'DOC_runoff'
long_name_val = 'DOC_runoff: EM to ELM'
units_val = '[gC/m2/s]'
is_real_type = .true.
ndim = 1
dim1_beg_name = dimname_begc
dim1_end_name = dimname_endc
data_found = .true.
end select

end subroutine EMI_CNCarbonFluxType_DataInfoByID

end module EMI_CNCarbonFluxType_DataMod
Loading

0 comments on commit 25bf8a9

Please sign in to comment.