Thank you for looking into contributing to HEMCO! HEMCO is a grass-roots model that relies on contributions from community members like you. Whether you're new to HEMCO or a longtime user, you're a valued member of the community, and we want you to feel empowered to contribute.
We use GitHub to host the HEMCO source code, to track issues, user questions, and feature requests, and to accept pull requests: https://github.com/geoschem/HEMCO. Please help out as you can in response to issues and user questions.
HEMCO documentation can be found at hemco.readthedocs.io.
Submit bug fixes right away, as these will be given the highest priority. Please see Support Guidelines for more information.
Submit updates (code and/or data) for mature model developments once you have submitted a paper on the topic.
We use GitHub Flow, so all changes happen through pull requests. This workflow is described here.
As the author you are responsible for:
- Testing your changes
- Updating the user documentation (if applicable)
- Supporting issues and questions related to your changes
The HEMCO codebase dates back several decades and includes contributions from many people and multiple organizations. Therefore, some inconsistent conventions are inevitable, but we ask that you do your best to be consistent with nearby code.
- Use Fortran-90 free format instead of Fortran-77 fixed format.
- Include thorough comments in all submitted code.
- Include full citations for references at the top of relevant source code modules.
- Check that you have updated the
CHANGELOG.md
file. - Remove extraneous code updates (e.g. testing options, other science).
- Submit any related code or configuration files for GCHP along with code or configuration files for GEOS-Chem Classic.
- Choose a final file naming convention before submitting data files for inclusion to GEOS-Chem.
- Make sure that all netCDF files adhere to the COARDS conventions.
- Concatenate netCDF files to reduce the number of files that need to be opened. This results in more efficient I/O operations.
- Chunk and deflate netCDF files in order to improve file I/O.
- Include an updated HEMCO configuration file corresponding to the new data.
- Include a README file detailing data source, contents, etc.
- Include script(s) used to process original data.
- Include a summary or description of the expected results (e.g. emission totals for each species).
Also follow these additional steps to ensure that your data can be read by GCHP:
- All netCDF data variables should be of type
float
(akaREAL*4
) ordouble
(akaREAL*8
). - Use a recent reference datetime (i.e. after
1900-01-01
) for the netCDFtime:units
attribute. - The first time value in each file should be 0, corresponding with the reference datetime.
We accept feature requests through issues on GitHub. To request a new feature, open a new issue and select the feature request template. Please include all the information that migth be relevant, including the motivation for the feature.
Please see Support Guidelines.
Please see Support Guidelines.