Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
89e9a4f
Initial commit of rrfs_cmaq_canopy branch.
Feb 10, 2022
e38abcd
Initial copy of canopy photolysis routines.
Feb 11, 2022
539e975
Initial modifications to canopy photolysis CMAQ5.2.1 codes.
Feb 11, 2022
941e235
Updated CMAQ makefiles for modified canopy codes.
Feb 16, 2022
f1d72d1
Added new canopy variables to AQM shared components.
Feb 16, 2022
c8a294c
Added placeholder new canopy variables to aqm cap for fv3.
Feb 16, 2022
5d73df1
Added conditional CANOPY_SHADE environment variable/logical.
Feb 17, 2022
4a5f99e
Updated conditional canopy_yn environment and logicals.
Feb 17, 2022
8d6af39
Fixed bugs.
Feb 17, 2022
d906997
Fixed more bugs.
Feb 17, 2022
bb85b5e
Removed "RETURN" bug and added diagnostic prints.
Feb 24, 2022
07e3800
Removed RETURN bug.
Feb 24, 2022
685de08
Added debug statements
Feb 28, 2022
b00f1c8
Removed debug prints and added canopy variables in DESC3.
Mar 1, 2022
846e1dc
Added some debug prints.
Mar 1, 2022
a816991
Updated debug statemetns
Mar 2, 2022
8c54358
Fixed bug in declaration.
Mar 2, 2022
830986e
Checking CANOPY_SHADE condition..
Mar 3, 2022
cffa402
Updated Canopy debugs
Mar 3, 2022
7d49ad1
Fixed CANOPY_SHADE logic bug and added debug prints.
Mar 3, 2022
c3bc815
Removed extraneous debug prints.
Mar 4, 2022
2a26402
Removed debug prints.
Mar 4, 2022
2ee012f
Fixed allocation/save bug.
Mar 5, 2022
d13f545
Merge pull request #1 from noaa-oar-arl/feature/rrfs_cmaq_canopy
drnimbusrain Mar 21, 2022
6cc3005
Update Makefile.in
drnimbusrain Mar 21, 2022
43c9948
Update Makefile.in
drnimbusrain Mar 21, 2022
0bef3be
Added new canopy file to read for AQM.
drnimbusrain Mar 29, 2022
9b09397
Updated aqm.rc example file.
drnimbusrain Mar 29, 2022
3daa4b6
Updated example aqm.rc for canopy settings and file.
drnimbusrain Mar 30, 2022
cc0d3e2
Initial changes for reading canopy data in AQM.
drnimbusrain Mar 30, 2022
035efa1
Updated aqm_emis_read and aqm.rc for canopy variables.
drnimbusrain Mar 30, 2022
f427465
Updated bug to get aqm_get_config.
drnimbusrain Apr 4, 2022
cb06eff
Merge branch 'NOAA-EMC:develop' into feature/aqm_canopy
drnimbusrain Jun 6, 2022
30bccdb
Updated for local in-canopy modified codes.
drnimbusrain Jun 14, 2022
1c1f758
Moved ASX_DATA_MOD to compile above Phot.F
drnimbusrain Jun 14, 2022
4044777
Updated to remove default ASX_DATA_MOD and phot.F
drnimbusrain Jun 14, 2022
1d7cfe8
Merge branch 'NOAA-EMC:develop' into feature/aqm_canopy
drnimbusrain Aug 19, 2022
2030355
Testing Sub-Canopy phot effects only.
drnimbusrain Aug 25, 2022
0eca9b5
Restore link to CMAQ authoritative repository (#8)
rmontuoro Sep 9, 2022
d7916ab
Adding Fengsha dust emission scheme (#6)
bbakernoaa Sep 16, 2022
d0f2362
Merge branch 'develop' of https://github.com/NOAA-EMC/AQM into featur…
drnimbusrain Oct 4, 2022
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
4 changes: 2 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[submodule "src/model/CMAQ"]
path = src/model/CMAQ
url = https://github.com/NOAA-EMC/CMAQ
branch = dev/emc
url = https://github.com/USEPA/CMAQ
branch = 5.2.1
12 changes: 10 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,8 @@ target_include_directories(drv PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/src/io/aqmio>
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/src/model>)
target_compile_definitions(drv PUBLIC verbose_driver)
target_link_libraries(drv PRIVATE shr CCTM esmf)
#target_link_libraries(drv PRIVATE shr CCTM esmf)
target_link_libraries(drv PRIVATE shr CCTM)

# src/io/aqmio
add_library(aqmio OBJECT ${aqm_aqmio_files})
Expand Down Expand Up @@ -86,6 +87,8 @@ target_compile_definitions(CCTM PUBLIC SUBST_FILES_ID="FILES_CTM.EXT"
SUBST_BARRIER=NOOP_BARRIER
SUBST_SUBGRID_INDEX=NOOP_SUBGRID_INDEX
EDDYX=DUMMY_EDDYX
MOSAIC_MOD=MOSAIC_MODULE
Mosaic_Mod=Mosaic_Module
OPCONC=DUMMY_OPCONC
OPACONC=DUMMY_OPACONC
OPWDEP=DUMMY_OPWDEP
Expand All @@ -94,7 +97,6 @@ target_compile_definitions(CCTM PUBLIC SUBST_FILES_ID="FILES_CTM.EXT"
verbose_gas
mpas
_AQM_)
target_link_libraries(CCTM PRIVATE esmf)

# AQM
add_library(aqm STATIC ${aqm_files} $<TARGET_OBJECTS:shr>
Expand All @@ -103,6 +105,12 @@ add_library(aqm STATIC ${aqm_files} $<TARGET_OBJECTS:shr>
$<TARGET_OBJECTS:ioapi>
$<TARGET_OBJECTS:CCTM>)
set_target_properties(aqm PROPERTIES Fortran_MODULE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mod)
add_custom_target(aqm_mosaic
COMMAND ${CMAKE_COMMAND} -E create_symlink
${CMAKE_CURRENT_BINARY_DIR}/mod/mosaic_module.mod
${CMAKE_CURRENT_BINARY_DIR}/mod/mosaic_mod.mod
)
add_dependencies(aqm aqm_mosaic)
add_library(aqm::aqm ALIAS aqm)
target_include_directories(aqm PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>
$<INSTALL_INTERFACE:mod>)
Expand Down
2 changes: 1 addition & 1 deletion README
Original file line number Diff line number Diff line change
@@ -1 +1 @@

Modified branch to account for in-canopy effects on composition/weather
7 changes: 4 additions & 3 deletions aqm_files.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,6 @@ list(APPEND aqm_CCTM_files
${EMIS}/BEIS_DEFN.F
${EMIS}/BIOG_EMIS.F
${EMIS}/cropcal.F
${EMIS}/DUST_EMIS.F
${EMIS}/EMIS_DEFN.F
${EMIS}/LTNG_DEFN.F
${EMIS}/LUS_DEFN.F
Expand Down Expand Up @@ -180,7 +179,6 @@ list(APPEND aqm_CCTM_files
${PHOT}/CSQY_DATA.F
${PHOT}/OMI_1979_to_2015.dat
${PHOT}/opphot.F
${PHOT}/phot.F
${PHOT}/PHOT_MET_DATA.F
${PHOT}/PHOT_MOD.F
${PHOT}/PHOTOLYSIS_ALBEDO.F
Expand Down Expand Up @@ -215,7 +213,6 @@ list(APPEND aqm_CCTM_files
${UTIL}/subhdomain.F
${UTIL}/UTILIO_DEFN.F
${VDIFF}/aero_sedv.F
${VDIFF}/ASX_DATA_MOD.F
${VDIFF}/conv_cgrid.F
${VDIFF}/matrix1.F
${VDIFF}/opddep.F
Expand All @@ -231,4 +228,8 @@ list(APPEND aqm_CCTM_files
${localCCTM}/vdiffacmx.F
${localCCTM}/PTMAP.F
${localCCTM}/PT3D_DEFN.F
${localCCTM}/ASX_DATA_MOD.F
${localCCTM}/DUST_EMIS.F
${localCCTM}/phot.F
${localCCTM}/centralized_io_util_module.F
)
43 changes: 42 additions & 1 deletion examples/aqm.rc
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,31 @@ omi_data: /scratch1/NCEPDEV/nems/Raffaele.Montuoro/dev/aqm/epa/data/omi_cmaq_
# - set to true for cold start
init_concentrations: true

#
# Inline Canopy Effects
#
canopy_yn: true

canopy_type: canopy

canopy_format: netcdf

canopy_file: /scratch2/NAGAPE/arl/Patrick.C.Campbell/canopy_geofiles/gfs.t12z.geo.08.canopy_regrid.nc

canopy_frequency: static

canopy_species::
FCH 1.00000 FCH m
FRT 1.00000 FRT 1
CLU 1.00000 CLU 1
POPU 1.00000 POPU 10000_people/10km2
LAIE 1.00000 LAIE 1
C1R 1.00000 C1R 1
C2R 1.00000 C2R 1
C3R 1.00000 C3R 1
C4R 1.00000 C4R 1
::

#
# Run aerosol module
#
Expand All @@ -55,6 +80,20 @@ ctm_aod: true
# Compute and export PM2.5 mode fractions as diagnostic tracers
ctm_pmdiag: true

#
# Fengsha Dust Emission Option
#
fengsha_yn: true

fengsha_format: netcdf

fengsha_file: /scratch1/RDARCH/rda-arl-gpu/Barry.Baker/emissions/nexus/FENGSHA/FENGSHA_FILES.nc

fengsha_species::
clayf 1.00000 clayf 1
sandf 1.00000 sandf 1
drag 1.00000 drag 1
uthr 1.00000 uthr 1

#
# Input emissions
Expand All @@ -65,7 +104,7 @@ ctm_pmdiag: true
emission_sources: myemis

#
# Emission type: anthropogenic, biogenic, gbbepx
# Emission type: anthropogenic, biogenic, gbbepx, canopy
#
myemis_type: anthropogenic

Expand Down Expand Up @@ -194,3 +233,5 @@ myemis_species::
SESQ
TOLU
::


10 changes: 10 additions & 0 deletions src/aqm_cap.F90
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ module AQM

! -- import fields
integer, parameter :: importFieldCount = 35
! integer, parameter :: importFieldCount = 44 !with canopy
character(len=*), dimension(importFieldCount), parameter :: &
importFieldNames = (/ &
"canopy_moisture_storage ", &
Expand Down Expand Up @@ -50,6 +51,15 @@ module AQM
"surface_cell_area ", &
"surface_snow_area_fraction ", &
"temperature_of_soil_layer " &
! "forest_canopy_height ", &
! "forest_fraction ", &
! "clumping_index ", &
! "population_density ", &
! "leaf_area_index_eccc ", &
! "cum_lai_frac1_eccc ", &
! "cum_lai_frac2_eccc ", &
! "cum_lai_frac3_eccc ", &
! "cum_lai_frac4_eccc ", &
/)
! -- export fields
integer, parameter :: exportFieldCount = 2
Expand Down
55 changes: 55 additions & 0 deletions src/aqm_comp_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -584,6 +584,61 @@ subroutine aqm_comp_import(state, fieldNames, rc)
line=__LINE__, &
file=__FILE__)) &
return ! bail
!canopy variables
! case ("forest_canopy_height")
! call ESMF_FieldGet(field, localDe=localDe, farrayPtr=stateIn % stemp, rc=rc)
! if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
! line=__LINE__, &
! file=__FILE__)) &
! return ! bail
! case ("forest_fraction")
! call ESMF_FieldGet(field, localDe=localDe, farrayPtr=stateIn % stemp, rc=rc)
! if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
! line=__LINE__, &
! file=__FILE__)) &
! return ! bail
! case ("clumping_index")
! call ESMF_FieldGet(field, localDe=localDe, farrayPtr=stateIn % stemp, rc=rc)
! if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
! line=__LINE__, &
! file=__FILE__)) &
! return ! bail
! case ("population_density")
! call ESMF_FieldGet(field, localDe=localDe, farrayPtr=stateIn % stemp, rc=rc)
! if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
! line=__LINE__, &
! file=__FILE__)) &
! return ! bail
! case ("leaf_area_index_eccc")
! call ESMF_FieldGet(field, localDe=localDe, farrayPtr=stateIn % stemp, rc=rc)
! if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
! line=__LINE__, &
! file=__FILE__)) &
! return ! bail
! case ("cum_lai_frac1_eccc")
! call ESMF_FieldGet(field, localDe=localDe, farrayPtr=stateIn % stemp, rc=rc)
! if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
! line=__LINE__, &
! file=__FILE__)) &
! return ! bail
! case ("cum_lai_frac2_eccc")
! call ESMF_FieldGet(field, localDe=localDe, farrayPtr=stateIn % stemp, rc=rc)
! if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
! line=__LINE__, &
! file=__FILE__)) &
! return ! bail
! case ("cum_lai_frac3_eccc")
! call ESMF_FieldGet(field, localDe=localDe, farrayPtr=stateIn % stemp, rc=rc)
! if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
! line=__LINE__, &
! file=__FILE__)) &
! return ! bail
! case ("cum_lai_frac4_eccc")
! call ESMF_FieldGet(field, localDe=localDe, farrayPtr=stateIn % stemp, rc=rc)
! if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
! line=__LINE__, &
! file=__FILE__)) &
! return ! bail
case default
! -- unused field
end select
Expand Down
Loading